{"ok":true,"resource":{"id":"sand3d--articraft--articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec","sourceId":"sandflow-sand3d","sourceAssetId":"articraft:rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec","name":"ARTICRAFT Rec Internet Router 38Ff62F87E (Sand3D Program)","category":"industrial","publisher":"Sandflow","formats":["py","usda","glb"],"fileCount":2,"sizeBytes":715501,"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_internet_router_38ff62f87e3a4fa39f17220905fd86ec.usda","thumbnailUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.png","detailImageUrl":"https://sandflow-sand3d-explorer.hf.space/r/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.png","sourcePreviewUrl":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.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":"5647866c83b6ef30b04c5b4b2f9415613460c3d69d9c29fa9681c699441821c7","contentHash":"03f4bf364a3af586510fcd0fa762e9796d799369d83363c418a5ae1ea0665483","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_internet_router_38ff62f87e3a4fa39f17220905fd86ec.usda","format":"usda","sizeBytes":50000,"sha256":"5647866c83b6ef30b04c5b4b2f9415613460c3d69d9c29fa9681c699441821c7","url":"https://huggingface.co/datasets/SZFSPC/techidaily-resources/resolve/ba1baf9d89ddf57433d7c47cb461f6d8883067a1/usda/0002/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.usda"}],"sand3d":{"datasetRepo":"Sandflow/sand3d-articraft","subcollection":"articraft","totalInDataset":9209,"entryFunction":"desktop_wifi_router","nJoints":5,"fScore":0.9987,"program":"import sand3d as s3d\n\n\ndef desktop_wifi_router():\n    housing = housing_part()\n    children = [housing]\n    for i, x in enumerate((-108, -36, 36, 108)):\n        f = s3d.local(housing, x, 91, 55, 0, 0, 0)\n        antenna = s3d.at(antenna_part(), on=f)\n        s3d.joint(\n            f\"housing_to_antenna_{i}\",\n            antenna,\n            f,\n            kind=\"revolute\",\n            axis=\"-X\",\n            range=(-14.3239, 71.6197),\n        )\n        children.append(antenna)\n    f = s3d.local(housing, -95, -38, 30, 0, 0, 0)\n    button = s3d.at(button_part(), on=f)\n    s3d.joint(\"housing_to_button\", button, f, kind=\"prismatic\", axis=\"-Z\", range=(0, 4))\n    children.append(button)\n    return s3d.assembly(\"desktop_wifi_router\", *children)\n\n\ndef housing_part():\n    body = s3d.at(s3d.extrude(\"body_shell\", s3d.rect(300, 170, r=18), 36, both=True), z=18)\n    s3d.material(body, \"plastic\", color=\"#08090a\")\n    sheen = s3d.at(s3d.extrude(\"top_inset\", s3d.rect(220, 86), 1.2, both=True), z=36.4, y=-10)\n    s3d.material(sheen, \"plastic\", color=\"#0e0f10\")\n    lip = s3d.at(\n        s3d.extrude(\"button_well_lip\", s3d.circle(28) - s3d.circle(21), 1, both=True),\n        x=-95,\n        y=-38,\n        z=35.85,\n    )\n    s3d.material(lip, \"plastic\", color=\"#000000\")\n    items = [body, sheen, lip]\n    for i, x in enumerate((-46, -23, 0, 23, 46)):\n        q = s3d.at(\n            s3d.extrude(f\"front_led_{i}\", s3d.rect(10, 2), 3.5, both=True), x=x, y=-85.2, z=20\n        )\n        items.append(s3d.material(q, \"light\", color=\"#0de652\"))\n    for i, x in enumerate((-45, -15, 15, 45)):\n        q = s3d.at(\n            s3d.extrude(f\"rear_port_{i}\", s3d.rect(23, 2.5), 12, both=True), x=x, y=85.5, z=17\n        )\n        items.append(s3d.material(q, \"plastic\", color=\"#000000\"))\n    for i, x in enumerate((-108, -36, 36, 108)):\n        q = s3d.at(\n            s3d.extrude(f\"hinge_foot_{i}\", s3d.rect(42, 26), 9, both=True), x=x, y=88, z=39.5\n        )\n        items.append(s3d.material(q, \"painted_metal\", color=\"#020203\"))\n        for side, sx in ((\"a\", -16), (\"b\", 16)):\n            q = s3d.at(\n                s3d.extrude(f\"hinge_ear_{i}_{side}\", s3d.rect(4, 14), 25, both=True),\n                x=x + sx,\n                y=91,\n                z=55,\n            )\n            items.append(s3d.material(q, \"painted_metal\", color=\"#020203\"))\n        for side, sx in ((\"a\", -19), (\"b\", 19)):\n            q = s3d.at(\n                s3d.extrude(f\"hinge_cap_{i}_{side}\", s3d.circle(12), 2, both=True),\n                x=x + sx,\n                y=91,\n                z=55,\n                ry=90,\n            )\n            items.append(s3d.material(q, \"rubber\", color=\"#030303\"))\n    return s3d.group(\"housing\", *items)\n\n\ndef antenna_part():\n    barrel = s3d.at(s3d.extrude(\"hinge_barrel\", s3d.circle(14), 28, both=True), ry=90)\n    collar = s3d.at(s3d.extrude(\"root_collar\", s3d.circle(11), 20, both=True), z=8)\n    blade = s3d.at(s3d.extrude(\"blade\", s3d.rect(12, 6, r=2.8), 165, both=True), z=95)\n    tip = s3d.at(s3d.sphere(\"rounded_tip\", 11), z=175)\n    s3d.material(barrel, \"rubber\", color=\"#030303\")\n    s3d.material(collar, \"rubber\", color=\"#030303\")\n    s3d.material(blade, \"plastic\", color=\"#020203\")\n    s3d.material(tip, \"plastic\", color=\"#020203\")\n    return s3d.group(\"antenna\", barrel, collar, blade, tip)\n\n\ndef button_part():\n    p = s3d.extrude(\"plunger\", s3d.circle(16), 3, both=True)\n    s3d.material(p, \"plastic\", color=\"#737577\")\n    g = s3d.at(s3d.extrude(\"guide_sleeve\", s3d.circle(26.6), 6, both=True), z=-4.4)\n    s3d.material(g, \"plastic\", color=\"#737577\")\n    return s3d.group(\"button\", p, g)","usdaPath":"usda/0002/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.usda","programSha256":"03f4bf364a3af586510fcd0fa762e9796d799369d83363c418a5ae1ea0665483","explorerUrl":"/resources/explorer?oid=articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec","glbUrl":"https://sandflow-sand3d-explorer.hf.space/glb/articraft-rec_internet_router_38ff62f87e3a4fa39f17220905fd86ec.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: 0.9987)."],"requiredNextSteps":["Check materials, scale, performance and required file conversion in your target renderer."]}}