{"ok":true,"resource":{"id":"sand3d--articraft--articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0","sourceId":"sandflow-sand3d","sourceAssetId":"articraft:rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0","name":"ARTICRAFT Rec Simple Ironing Board Bbda4 (Sand3D Program)","category":"industrial","publisher":"Sandflow","formats":["py","usda","glb"],"fileCount":2,"sizeBytes":1914632,"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_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.usda","thumbnailUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.png","detailImageUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.png","sourcePreviewUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.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":"6ded3d91f8cfb1d0a70decb3060629d61fb7be33859535b1bb13efc8a471d2e7","contentHash":"fc321e1cb208bf9cf727803aab99d3c5450eb3a7dbe7a8ce4e802dfeb5ae90db","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_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.usda","format":"usda","sizeBytes":50000,"sha256":"6ded3d91f8cfb1d0a70decb3060629d61fb7be33859535b1bb13efc8a471d2e7","url":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.usda"}],"sand3d":{"datasetRepo":"Sandflow/sand3d-articraft","subcollection":"articraft","totalInDataset":9209,"entryFunction":"ironing_board","nJoints":1,"fScore":1,"program":"import sand3d as s3d\n\n\ndef ironing_board():\n    board = board_body()\n    f = s3d.local(board, -460, 0, 720)\n    tail = s3d.at(tail_rest(), on=f)\n    board = s3d.group(\"ironing_board_root\", board, tail)\n    f = s3d.local(board, 100, 0, 700)\n    leg = s3d.at(main_leg(), on=f)\n    s3d.joint(\"board_to_main_leg\", leg, f, kind=\"revolute\", axis=\"-Y\", range=(0, 1.22 * 180 / 3.14))\n    return s3d.assembly(\"ironing_board\", board, leg)\n\n\ndef board_body():\n    top = s3d.at(\n        s3d.extrude(\n            \"board_top\",\n            s3d.spline(\n                [\n                    (620, 0),\n                    (520, 105),\n                    (200, 168),\n                    (-500, 176),\n                    (-660, 145),\n                    (-690, 0),\n                    (-660, -145),\n                    (-500, -176),\n                    (200, -168),\n                    (520, -105),\n                ],\n                closed=True,\n            ),\n            22,\n            both=True,\n        ),\n        z=731,\n    )\n    pan = s3d.at(s3d.extrude(\"underside_pan\", s3d.rect(1040, 240), 10, both=True), x=-20, z=715)\n    bracket = s3d.at(s3d.extrude(\"base_bracket\", s3d.rect(340, 120), 30, both=True), x=20, z=700)\n    spine = s3d.at(s3d.extrude(\"bracket_spine\", s3d.rect(180, 30), 50, both=True), x=-60, z=688)\n    left = s3d.at(\n        s3d.extrude(\"left_brace_arm\", s3d.rect(180, 122), 28, both=True), x=-5, y=121, z=686\n    )\n    right = s3d.at(\n        s3d.extrude(\"right_brace_arm\", s3d.rect(180, 122), 28, both=True), x=-5, y=-121, z=686\n    )\n    cheek1 = s3d.at(\n        s3d.extrude(\"left_hinge_cheek\", s3d.rect(50, 22), 82, both=True), x=60, y=185, z=676\n    )\n    cheek2 = s3d.at(\n        s3d.extrude(\"right_hinge_cheek\", s3d.rect(50, 22), 82, both=True), x=60, y=-185, z=676\n    )\n    s3d.material(top, \"fabric\", color=\"#9eb8d1\")\n    for ob in [pan]:\n        s3d.material(ob, \"steel\", color=\"#babdc2\")\n    for ob in [bracket, spine, left, right, cheek1, cheek2]:\n        s3d.material(ob, \"steel\", color=\"#4a4f54\")\n    return s3d.group(\"board_body\", top, pan, bracket, spine, left, right, cheek1, cheek2)\n\n\ndef tail_rest():\n    mount = s3d.at(s3d.extrude(\"tail_mount\", s3d.rect(180, 190), 22, both=True), z=-21)\n    frame = s3d.wire(\n        \"tail_frame\",\n        s3d.spline(\n            [\n                (0, 82, -20),\n                (-25, 98, -240),\n                (-70, 110, -715),\n                (-70, -110, -715),\n                (-25, -98, -240),\n                (0, -82, -20),\n            ]\n        ),\n        24,\n    )\n    foot1 = s3d.at(\n        s3d.extrude(\"tail_left_foot\", s3d.circle(36), 18, both=True), x=-70, y=110, z=-715, rx=90\n    )\n    foot2 = s3d.at(\n        s3d.extrude(\"tail_right_foot\", s3d.circle(36), 18, both=True), x=-70, y=-110, z=-715, rx=90\n    )\n    bar = s3d.at(s3d.extrude(\"tail_foot_bar\", s3d.rect(40, 240), 22, both=True), x=-70, z=-715)\n    g1 = s3d.at(\n        s3d.extrude(\"tail_left_gusset\", s3d.rect(34, 32), 60, both=True), x=-10, y=84, z=-50\n    )\n    g2 = s3d.at(\n        s3d.extrude(\"tail_right_gusset\", s3d.rect(34, 32), 60, both=True), x=-10, y=-84, z=-50\n    )\n    for ob in [mount, g1, g2]:\n        s3d.material(ob, \"steel\", color=\"#4a4f54\")\n    s3d.material(frame, \"steel\", color=\"#babdc2\")\n    for ob in [foot1, foot2, bar]:\n        s3d.material(ob, \"rubber\", color=\"#141416\")\n    return s3d.group(\"tail_rest\", mount, frame, foot1, foot2, bar, g1, g2)\n\n\ndef main_leg():\n    frame = s3d.wire(\n        \"leg_frame\",\n        s3d.spline(\n            [\n                (0, 205, -10),\n                (55, 230, -185),\n                (150, 255, -455),\n                (235, 285, -700),\n                (235, -285, -700),\n                (150, -255, -455),\n                (55, -230, -185),\n                (0, -205, -10),\n            ]\n        ),\n        26,\n    )\n    b1 = s3d.at(\n        s3d.extrude(\"left_hinge_barrel\", s3d.circle(30), 70, both=True), x=0, y=205, z=-10, rx=90\n    )\n    b2 = s3d.at(\n        s3d.extrude(\"right_hinge_barrel\", s3d.circle(30), 70, both=True), x=0, y=-205, z=-10, rx=90\n    )\n    bar = s3d.at(s3d.extrude(\"main_foot_bar\", s3d.rect(55, 575), 24, both=True), x=235, z=-700)\n    s3d.material(frame, \"steel\", color=\"#babdc2\")\n    for ob in [b1, b2]:\n        s3d.material(ob, \"steel\", color=\"#4a4f54\")\n    s3d.material(bar, \"rubber\", color=\"#141416\")\n    return s3d.group(\"main_leg\", frame, b1, b2, bar)","usdaPath":"usda/0002/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.usda","programSha256":"fc321e1cb208bf9cf727803aab99d3c5450eb3a7dbe7a8ce4e802dfeb5ae90db","explorerUrl":"/resources/explorer?oid=articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0","glbUrl":"https://sandflow-sand3d-explorer.hf.space/glb/articraft-rec_simple_ironing_board_bbda404308634a08937b3b9e1acd42c0.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 (1 articulated joints, F-score: 1)."],"requiredNextSteps":["Check materials, scale, performance and required file conversion in your target renderer."]}}