{"ok":true,"resource":{"id":"sand3d--articraft--articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84","sourceId":"sandflow-sand3d","sourceAssetId":"articraft:rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84","name":"ARTICRAFT Rec Espresso Machine With Arti (Sand3D Program)","category":"industrial","publisher":"Sandflow","formats":["py","usda","glb"],"fileCount":2,"sizeBytes":1102022,"kind":"3d-code","license":"CC-BY-4.0","revision":"ba1baf9d89ddf57433d7c47cb461f6d8883067a1","sourceUrl":"https://huggingface.co/datasets/Sandflow/sand3d-articraft","entryUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.usda","thumbnailUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.png","detailImageUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.png","sourcePreviewUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.png","capabilities":["Sand3D (Code)","UsdPhysics","Kinematics Joint Articulation","Parametric Reconstruction"],"capabilityEvidence":"sand3d-program-analysis","runtimeValidation":"not-tested","classificationEvidence":"family-taxonomy-mapping","storageStatus":"hf-mirror-tree-verified","packageHash":"524703b9a3082d00c5f2f601f2cc9b19b6bd94a9b704bebe53055159637e925c","contentHash":"fa81cfb2758a113c5e715bf4a906fc676d72ecfeee1632da51d3c083c9302052","checkedAt":"2026-11-06T14:00:00.000Z","aiGenerated":false,"attribution":"Sandflow Sand3D Library; CC-BY-4.0","evidence":{"license":{"spdx":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/","location":"datasets/Sandflow/sand3d-articraft/LICENSE"},"commercialPermitted":true,"notes":"Parametric 3D object from Sandflow/sand3d-articraft (9,209 objects). Pinned revision 1d07bda."},"outputFiles":[{"path":"usda/0002/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.usda","format":"usda","sizeBytes":50000,"sha256":"524703b9a3082d00c5f2f601f2cc9b19b6bd94a9b704bebe53055159637e925c","url":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.usda"}],"sand3d":{"datasetRepo":"Sandflow/sand3d-articraft","subcollection":"articraft","totalInDataset":9209,"entryFunction":"single_group_espresso_machine","nJoints":5,"fScore":1,"program":"import sand3d as s3d\nimport math\n\n\ndef single_group_espresso_machine():\n    body = body_part()\n    hf = s3d.local(body, 0, 272, 340)\n    head = s3d.at(group_head_part(), on=hf)\n    pf_f = s3d.local(head)\n    pf = s3d.at(portafilter_part(), on=pf_f)\n    s3d.joint(\n        \"group_head_to_portafilter\",\n        pf,\n        pf_f,\n        kind=\"revolute\",\n        axis=\"+Z\",\n        range=(-1.05 * 180 / math.pi, 0.12 * 180 / math.pi),\n    )\n    sf = s3d.local(body, 279, 244, 440)\n    wand = s3d.at(steam_wand_part(), on=sf)\n    s3d.joint(\n        \"body_to_steam_wand\",\n        wand,\n        sf,\n        kind=\"revolute\",\n        axis=\"+Z\",\n        range=(-1.1 * 180 / math.pi, 1.1 * 180 / math.pi),\n    )\n    lf = s3d.local(body, -268.5, 185, 360)\n    left = s3d.at(left_panel_part(), on=lf)\n    s3d.joint(\n        \"body_to_left_panel\", left, lf, kind=\"revolute\", axis=\"-Z\", range=(0, 1.3 * 180 / math.pi)\n    )\n    rf = s3d.local(body, 268.5, 185, 360)\n    right = s3d.at(right_panel_part(), on=rf)\n    s3d.joint(\n        \"body_to_right_panel\", right, rf, kind=\"revolute\", axis=\"+Z\", range=(0, 1.3 * 180 / math.pi)\n    )\n    tf = s3d.local(body, 0, 135, 118)\n    tray = s3d.at(tray_part(), on=tf)\n    s3d.joint(\"body_to_tray\", tray, tf, kind=\"prismatic\", axis=\"+Y\", range=(0, 170))\n    return s3d.assembly(\n        \"single_group_espresso_machine\",\n        s3d.group(\"body_structure\", body, head),\n        pf,\n        wand,\n        left,\n        right,\n        tray,\n    )\n\n\ndef _box(name, dims, pos, mat):\n    o = s3d.extrude(name, s3d.rect(dims[0], dims[1]), dims[2], both=True)\n    return s3d.material(s3d.at(o, x=pos[0], y=pos[1], z=pos[2]), mat[0], color=mat[1])\n\n\ndef _cyl(name, r, l, pos, mat, rot=(0, 0, 0)):\n    o = s3d.extrude(name, s3d.circle(2 * r), l, both=True)\n    return s3d.material(\n        s3d.at(o, x=pos[0], y=pos[1], z=pos[2], rx=rot[0], ry=rot[1], rz=rot[2]),\n        mat[0],\n        color=mat[1],\n    )\n\n\ndef body_part():\n    dark = (\"plastic\", \"#242629\")\n    steel = (\"steel\", \"#ccd1d6\")\n    satin = (\"brushed_steel\", \"#a8b0b8\")\n    p = []\n    p += [\n        _box(\"base_block\", (480, 180, 160), (0, -110, 80), dark),\n        _box(\"left_skirt\", (50, 360, 200), (-235, 0, 100), dark),\n        _box(\"right_skirt\", (50, 360, 200), (235, 0, 100), dark),\n        _box(\"rear_cross\", (420, 100, 160), (0, -160, 80), dark),\n    ]\n    p += [\n        _box(\"left_front_post\", (35, 100, 420), (-245, 205, 320), steel),\n        _box(\"right_front_post\", (35, 100, 420), (245, 205, 320), steel),\n        _box(\"left_rear_post\", (35, 100, 380), (-245, -205, 300), steel),\n        _box(\"right_rear_post\", (35, 100, 380), (245, -205, 300), steel),\n        _box(\"rear_wall\", (520, 30, 460), (0, -255, 330), (\"brushed_steel\", \"#a8b0b8\")),\n        _box(\"top_deck\", (520, 440, 16), (0, -20, 592), steel),\n        _box(\"front_brow\", (520, 70, 90), (0, 225, 545), steel),\n        _box(\"left_fascia\", (150, 14, 240), (-155, 230, 420), steel),\n        _box(\"right_fascia\", (150, 14, 240), (155, 230, 420), steel),\n        _box(\"center_mount_panel\", (110, 14, 154), (0, 230, 423), steel),\n        _box(\"tray_bridge\", (520, 50, 80), (0, 215, 215), steel),\n    ]\n    p += [\n        _box(\"left_guide\", (18, 340, 11), (-170, 45, 110.5), satin),\n        _box(\"right_guide\", (18, 340, 11), (170, 45, 110.5), satin),\n        _cyl(\"steam_pivot_support\", 14, 64, (279, 244, 472), satin),\n        _box(\"steam_support_block\", (70, 20, 50), (244, 220, 430), steel),\n    ]\n    xy = s3d.spline([(-220, -160), (-220, 150), (220, 150), (220, -160)], closed=True)\n    rail = s3d.wire(\"cup_rail\", xy, 10)\n    rail = s3d.at(rail, z=645)\n    p.append(s3d.material(rail, \"brushed_steel\", color=\"#a8b0b8\"))\n    for i, (x, y) in enumerate([(-220, -160), (-220, 150), (220, 150), (220, -160)]):\n        p.append(_cyl(f\"rail_post_{i}\", 6, 45, (x, y, 622.5), satin))\n    return s3d.group(\"body\", *p)\n\n\ndef group_head_part():\n    st = (\"brushed_steel\", \"#a8b0b8\")\n    ss = (\"steel\", \"#ccd1d6\")\n    return s3d.group(\n        \"group_head\",\n        _box(\"mount_block\", (120, 50, 70), (0, -10, 55), st),\n        _cyl(\"nose\", 39, 85, (0, 40, 40), st, (90, 0, 0)),\n        _cyl(\"brew_collar\", 31, 16, (0, 0, 8), ss),\n    )\n\n\ndef portafilter_part():\n    st = (\"brushed_steel\", \"#a8b0b8\")\n    br = (\"plastic\", \"#2b1f17\")\n    bl = (\"plastic\", \"#141416\")\n    return s3d.group(\n        \"portafilter\",\n        _cyl(\"lug_ring\", 41, 8, (0, 0, -4), st),\n        _cyl(\"basket\", 34, 22, (0, 0, -11), st),\n        _box(\"neck\", (18, 55, 18), (0, 45, -28), st),\n        _cyl(\"grip\", 12, 160, (0, 125, -28), br, (90, 0, 0)),\n        _cyl(\"end_cap\", 15, 22, (0, 205, -28), bl, (90, 0, 0)),\n    )\n\n\ndef steam_wand_part():\n    st = (\"brushed_steel\", \"#a8b0b8\")\n    path = s3d.spline([(0, 0, -24), (-6, 8, -50), (-16, 20, -90), (-29, 38, -160), (-41, 57, -245)])\n    return s3d.group(\n        \"steam_wand\",\n        _cyl(\"pivot_collar\", 9, 24, (0, 0, -12), st),\n        s3d.material(s3d.wire(\"steam_wand_tube\", path, 9), \"brushed_steel\", color=\"#a8b0b8\"),\n        _cyl(\"tip\", 3.8, 26, (-41, 57, -258), st, (28.65, 6.88, 0)),\n    )\n\n\ndef left_panel_part():\n    st = (\"steel\", \"#ccd1d6\")\n    sa = (\"brushed_steel\", \"#a8b0b8\")\n    bl = (\"plastic\", \"#141416\")\n    return s3d.group(\n        \"left_panel\",\n        _box(\"panel\", (12, 390, 340), (0, -195, 0), st),\n        _box(\"bead\", (6, 290, 200), (3, -205, 0), sa),\n        _cyl(\"pull\", 5, 100, (-6, -90, 0), bl),\n    )\n\n\ndef right_panel_part():\n    st = (\"steel\", \"#ccd1d6\")\n    sa = (\"brushed_steel\", \"#a8b0b8\")\n    bl = (\"plastic\", \"#141416\")\n    return s3d.group(\n        \"right_panel\",\n        _box(\"panel\", (12, 390, 340), (0, -195, 0), st),\n        _box(\"bead\", (6, 290, 200), (-3, -205, 0), sa),\n        _cyl(\"pull\", 5, 100, (6, -90, 0), bl),\n    )\n\n\ndef tray_part():\n    dk = (\"plastic\", \"#242629\")\n    sa = (\"brushed_steel\", \"#a8b0b8\")\n    p = [\n        _box(\"floor\", (400, 230, 5), (0, 0, 0), dk),\n        _box(\"front_wall\", (400, 10, 40), (0, 110, 17.5), sa),\n        _box(\"rear_wall\", (400, 10, 26), (0, -110, 10.5), sa),\n        _box(\"left_wall\", (10, 210, 32), (-195, 0, 13.5), sa),\n        _box(\"right_wall\", (10, 210, 32), (195, 0, 13.5), sa),\n        _box(\"front_lip\", (420, 14, 15), (0, 119, 37.5), sa),\n        s3d.material(\n            s3d.at(s3d.extrude(\"grate\", s3d.rect(384, 212), 2, both=True), z=27.5),\n            \"plastic\",\n            color=\"#141416\",\n        ),\n    ]\n    return s3d.group(\"tray\", *p)","usdaPath":"usda/0002/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.usda","programSha256":"fa81cfb2758a113c5e715bf4a906fc676d72ecfeee1632da51d3c083c9302052","explorerUrl":"/resources/explorer?oid=articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84","glbUrl":"https://sandflow-sand3d-explorer.hf.space/glb/articraft-rec_espresso_machine_with_articulated_components_d1affe400c354cf58badf430126c3e84.glb"},"downloadUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/tree/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002","mirror":{"repository":"SZFSPC/techidaily-resources","revision":"ba1baf9d89ddf57433d7c47cb461f6d8883067a1","checkedAt":"2026-11-06T14:00:00.000Z","verification":"official-huggingface-dataset-parquet-manifest"}},"analysis":{"suitability":"candidate-needs-runtime-validation","useCase":"scene-building","evidence":{"formats":"sand3d-python-program-and-openusd-manifest","capabilities":"sand3d-program-analysis","category":"family-taxonomy-mapping"},"limitations":["Runtime compatibility and physical behavior have not been tested by TechIDaily.","Sand3D programs export OpenUSD with UsdPhysics joints; requires sand3d library and Python 3.13 for direct execution.","Mirror verification checks Git tree identity and sampled delivery, not an independent rehash of every payload.","Follow source-specific licensing and attribution. Other rights may apply; no endorsement is implied.","Parametric Python reconstruction available (5 articulated joints, F-score: 1)."],"requiredNextSteps":["Check materials, scale, performance and required file conversion in your target renderer."]}}