{"ok":true,"resource":{"id":"sand3d--simready--simready-ladder_step_aluminium_c03","sourceId":"sandflow-sand3d","sourceAssetId":"simready:ladder_step_aluminium_c03","name":"Ladder Step Aluminium C03 (Sand3D Program)","category":"industrial","publisher":"Sandflow","formats":["py","usda","usd","glb"],"revision":"ba1baf9d89ddf57433d7c47cb461f6d8883067a1","sourceUrl":"https://huggingface.co/datasets/Sandflow/sand3d-simready","thumbnailUrl":"https://sandflow-sand3d-explorer.hf.space/r/simready-ladder_step_aluminium_c03.png","detailImageUrl":"https://sandflow-sand3d-explorer.hf.space/r/simready-ladder_step_aluminium_c03.png","sourcePreviewUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0003/simready-ladder_step_aluminium_c03.png","checkedAt":"2026-11-06T14:00:00.000Z","licenseStatus":"manifest-and-text-checked","storageStatus":"hf-mirror-tree-verified","attribution":"Sandflow (Sand3D: 3D-as-Code Ecosystem)","evidence":{"license":{"spdx":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/","location":"datasets/Sandflow/sand3d-simready/LICENSE"},"commercialPermitted":true,"notes":"Parametric 3D object from Sand3D SimReady (Robotics & Simulation) (2,334 total). Pinned revision ba1baf9."},"outputFiles":[{"path":"usda/0003/simready-ladder_step_aluminium_c03.usda","format":"usda","sizeBytes":50000,"sha256":"c86be1acb02a01a65ba64dd11273fd06a2bdad77513a59ddc9813e24a47dc872","url":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0003/simready-ladder_step_aluminium_c03.usda"}],"sand3d":{"datasetRepo":"Sandflow/sand3d-simready","subcollection":"simready","totalInDataset":2334,"entryFunction":"stepladder","nJoints":2,"fScore":0.9864,"program":"import sand3d as s3d\nimport math\n\n\ndef stepladder():\n    frame = s3d.at(main_frame(), y=-93)\n    return s3d.assembly(\"stepladder\", frame)\n\n\ndef main_frame(rail_w=40, rail_d=70, wall=6, rail_h=1690, pitch=450, tilt=20, base_y=-286, base_z=15, tread_w=450, tread_d=68, tread_h=25, first_z=207, rise=235, cap_w=505, cap_h=38, foot_w=55, foot_d=100, foot_h=70, tab_l=100, tab_d=40, tab_t=16, tab_y=238, tab_z=1260, boss_d=28, boss_l=55):\n    p = s3d.poly([(-rail_w/2,-rail_d/2),(rail_w/2,-rail_d/2),(rail_w/2,-rail_d/2+wall),(-rail_w/2+wall,-rail_d/2+wall),(-rail_w/2+wall,rail_d/2-wall),(rail_w/2,rail_d/2-wall),(rail_w/2,rail_d/2),(-rail_w/2,rail_d/2)])\n    rail = s3d.at(s3d.extrude(\"climbing_channel\", p, h=rail_h), x=-pitch/2, y=base_y, z=base_z, rx=-tilt)\n    twin = s3d.transform(s3d.copy(rail), mirror=\"x\")\n    solids = [rail, twin]\n    slope = math.tan(math.radians(tilt))\n    for i in range(3):\n        z = first_z+i*rise\n        tread = s3d.at(s3d.box(\"tread\", w=tread_w, d=tread_d, h=tread_h), y=base_y+(z-base_z)*slope, z=z-tread_h/2)\n        solids.append(tread)\n    cap = s3d.at(s3d.box(\"top_bar\", w=cap_w, d=rail_d, h=cap_h), y=base_y+rail_h*math.sin(math.radians(tilt))-wall/2, z=base_z+rail_h*math.cos(math.radians(tilt))-cap_h/2-wall, rx=-tilt)\n    foot = s3d.at(s3d.loft(\"angled_foot\", s3d.station(z=0, w=foot_w, d=foot_d, n=4), s3d.station(z=foot_h, w=rail_w, d=rail_d, y=foot_h*slope/2, n=4)), x=-pitch/2, y=base_y+wall)\n    tab = s3d.at(s3d.extrude(\"hinge_bracket\", s3d.rect(w=tab_d, d=tab_l, r=tab_d/2-wall), h=tab_t), x=-pitch/2-tab_t/2, y=tab_y, z=tab_z, ry=90)\n    boss = s3d.at(s3d.cylinder(\"shelf_mount\", d=boss_d, h=boss_l), x=-pitch/2-rail_w/2, y=29, z=880, ry=90)\n    solids.extend([cap, foot, s3d.transform(s3d.copy(foot), mirror=\"x\"), tab, s3d.transform(s3d.copy(tab), mirror=\"x\"), boss, s3d.transform(s3d.copy(boss), mirror=\"x\")])\n    main = s3d.group(\"main_frame\", *solids)\n    s3d.material(main, kind=\"aluminium\", color=\"#929799\")\n    rear = s3d.at(rear_support(), y=377.5)\n    shelf = s3d.at(platform(), y=162, z=859)\n    s3d.joint(\"joint_sm_sideladder_c03_joint_00\", rear, s3d.local(main, x=-225, y=266, z=1260), kind=\"revolute\", axis=\"+X\", range=(-29,0))\n    s3d.joint(\"joint_sm_shelf_c03_joint_00\", shelf, s3d.local(main, x=-1, y=29, z=880), kind=\"revolute\", axis=\"+X\", range=(0,75))\n    return s3d.group(\"main_frame_group\", main, rear, shelf)\n\n\ndef rear_support(rail_w=26, rail_d=50, h=1270, pitch=450, tilt=10, base_y=115.5, bar_z=370, bar_d=17, tab_w=42, tab_d=70, tab_h=18):\n    rail = s3d.at(s3d.box(\"rear_leg\", w=rail_w, d=rail_d, h=h), x=-pitch/2, y=base_y, rx=tilt)\n    twin = s3d.transform(s3d.copy(rail), mirror=\"x\")\n    bar = s3d.at(s3d.cylinder(\"rear_crossbar\", d=bar_d, h=pitch), x=-pitch/2, y=base_y-bar_z*math.tan(math.radians(tilt)), z=bar_z, ry=90)\n    tab = s3d.at(s3d.box(\"hinge_tab\", w=tab_w, d=tab_d, h=tab_h), x=-pitch/2, y=base_y-h*math.sin(math.radians(tilt)), z=h*math.cos(math.radians(tilt))-tab_h/2)\n    part = s3d.group(\"rear_support\", rail, twin, bar, tab, s3d.transform(s3d.copy(tab), mirror=\"x\"))\n    s3d.material(part, kind=\"aluminium\", color=\"#929799\")\n    return part\n\n\ndef platform(w=380, d=380, h=43, t=4, hinge_w=440, hinge_d=28, hinge_y=-133, hinge_z=21):\n    tray = s3d.box(\"platform_tray\", w=w, d=d, h=h)\n    tray = s3d.shell(tray, t=t, open=\"bottom\")\n    hinge = s3d.at(s3d.cylinder(\"platform_hinge\", d=hinge_d, h=hinge_w), x=-hinge_w/2, y=hinge_y, z=hinge_z, ry=90)\n    part = s3d.group(\"platform\", tray, hinge)\n    s3d.material(part, kind=\"aluminium\", color=\"#929799\")\n    return part","usdaPath":"usda/0003/simready-ladder_step_aluminium_c03.usda","programSha256":"7118b2911cee4cb4bf61e7a3ea3e8db2a0026e02fc3db1704b0adf65aa3e6e1f","explorerUrl":"/resources/explorer?oid=simready-ladder_step_aluminium_c03","glbUrl":"https://sandflow-sand3d-explorer.hf.space/glb/simready-ladder_step_aluminium_c03.glb"},"capabilities":["Sand3D (Code)","UsdPhysics","Kinematics Joint Articulation","Parametric Reconstruction"],"runtimeValidation":"not-tested","kind":"3d-code","license":"CC-BY-4.0","sizeBytes":1024,"entryUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0003/simready-ladder_step_aluminium_c03.usda","downloadUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/tree/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0003","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":{"license":"manifest-and-text-checked","formats":"sand3d-python-program-and-openusd-manifest"},"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 (2 articulated joints, F-score: 0.9864)."],"requiredNextSteps":["Check materials, scale, performance and required file conversion in your target renderer."]}}