Menu

3D library of 100K assetsopen source and written as code3D libraryof 100K assetsopen source andwritten as code

Discover the most diverse 3D-as-code dataset library,
created with Sand3D, our LLM-friendly language.

  • Exercise bike406 lines

    Exercise bike, rendered from its program
  • Djembe43 lines

    Djembe, rendered from its program
  • Tower crane377 lines

    Tower crane, rendered from its program
  • Foosball table105 lines

    Foosball table, rendered from its program
  • Microscope328 lines

    Microscope, rendered from its program
  • Circus wagon83 lines

    Circus wagon, rendered from its program
  • Camcorder334 lines

    Camcorder, rendered from its program
  • Beach chair96 lines

    Beach chair, rendered from its program
  • Robotic arm377 lines

    Robotic arm, rendered from its program
  • Stereo receiver54 lines

    Stereo receiver, rendered from its program
  • Helicopter355 lines

    Helicopter, rendered from its program
  • Barrel27 lines

    Barrel, rendered from its program
  • Telescope301 lines

    Telescope, rendered from its program
  • Slot machine348 lines

    Slot machine, rendered from its program
  • Kick scooter314 lines

    Kick scooter, rendered from its program
  • Peg solitaire45 lines

    Peg solitaire, rendered from its program
  • Satellite dish301 lines

    Satellite dish, rendered from its program
  • Bass guitar101 lines

    Bass guitar, rendered from its program
  • Wheelchair400 lines

    Wheelchair, rendered from its program
  • Stacking rings89 lines

    Stacking rings, rendered from its program
  • Observatory319 lines

    Observatory, rendered from its program
  • Fridge55 lines

    Fridge, rendered from its program
  • Drafting table313 lines

    Drafting table, rendered from its program
  • Keyboard321 lines

    Keyboard, rendered from its program
  • Windmill291 lines

    Windmill, rendered from its program
  • Electric guitar68 lines

    Electric guitar, rendered from its program
  • Headphones282 lines

    Headphones, rendered from its program
  • Wheelbarrow274 lines

    Wheelbarrow, rendered from its program
  • Robot arm296 lines

    Robot arm, rendered from its program
  • Park bench77 lines

    Park bench, rendered from its program
  • Light bulb283 lines

    Light bulb, rendered from its program
  • Drone264 lines

    Drone, rendered from its program
  • Turntable292 lines

    Turntable, rendered from its program
  • Archery target46 lines

    Archery target, rendered from its program
  • Bell tower241 lines

    Bell tower, rendered from its program
  • Office chair255 lines

    Office chair, rendered from its program
  • Rolling toolbox276 lines

    Rolling toolbox, rendered from its program
  • Pan flute30 lines

    Pan flute, rendered from its program
  • Studio spotlight273 lines

    Studio spotlight, rendered from its program
  • Knee scooter260 lines

    Knee scooter, rendered from its program
  • Football47 lines

    Football, rendered from its program
  • Drill press267 lines

    Drill press, rendered from its program
  • Music stand289 lines

    Music stand, rendered from its program
  • Baby swing49 lines

    Baby swing, rendered from its program
  • DJ deck265 lines

    DJ deck, rendered from its program
  • Binoculars329 lines

    Binoculars, rendered from its program
  • String lights88 lines

    String lights, rendered from its program
  • Hand truck270 lines

    Hand truck, rendered from its program
  • Kettle grill279 lines

    Kettle grill, rendered from its program
  • Wagon wheel34 lines

    Wagon wheel, rendered from its program
  • Robotic leg314 lines

    Robotic leg, rendered from its program
  • School desk56 lines

    School desk, rendered from its program
  • Ring light285 lines

    Ring light, rendered from its program
  • Vacuum cleaner401 lines

    Vacuum cleaner, rendered from its program
  • Ceiling fan57 lines

    Ceiling fan, rendered from its program
  • Searchlight287 lines

    Searchlight, rendered from its program
  • Sewing box248 lines

    Sewing box, rendered from its program
  • Stretcher57 lines

    Stretcher, rendered from its program
  • Camera tripod339 lines

    Camera tripod, rendered from its program
  • Easel280 lines

    Easel, rendered from its program
  • Radiator56 lines

    Radiator, rendered from its program
  • Rotary table247 lines

    Rotary table, rendered from its program
  • Toaster oven280 lines

    Toaster oven, rendered from its program
  • Step ladder331 lines

    Step ladder, rendered from its program
  • Instrument case252 lines

    Instrument case, rendered from its program
  • Blender259 lines

    Blender, rendered from its program
  • Drying rack292 lines

    Drying rack, rendered from its program
  • Monitor arm326 lines

    Monitor arm, rendered from its program
  • Washing machine237 lines

    Washing machine, rendered from its program
  • Task lamp254 lines

    Task lamp, rendered from its program
  • Pitch module293 lines

    Pitch module, rendered from its program
  • Rolling walker254 lines

    Rolling walker, rendered from its program

Each render is the mesh built by the object’s Sand3D program.

Dataset

100K

3D objects in one collection. All written in Sand3D, all in one download.

We created Sand3Dan LLM-friendlylanguage that writes3D objects as code

Sand3D

One program per object. A Python file that gives each part
its shape, holes, position and material.

CAD parts

Pillow block, rendered from its programClamp bracket, rendered from its programPipe clip, rendered from its program

Mechanical parts, in the same language. Every dimension is a parameter of the program.

Meshes

The mesh beside each program. Ready for Blender, three.js and any glTF engine.

Quality code,easy to build on

Programs a person can read and an LLM can learn from, written part by part.

  • Clean andcompact code

    One function per part, every dimension a named parameter.

  • Less code,fewer tokens

    Each program is optimized: fewer tokens for an LLM to read.

  • Programshierarchy

    Each part is a function, called by the object it belongs to.

  • Fully open-sourced library

    Programs on Hugging Face, the library on GitHub, all open.

Every objectcomes with its program

Every part has its name in the code. Change a value, run the program again, and the object follows.

Kerosene lamp, rendered from its program

lantern.py62 lines

import sky3d as s3d  def lantern():    base = s3d.at(reservoir(), z=-4)    glass = s3d.at(chimney(), z=70)    support = s3d.at(side_support(), x=61, z=50)    twin = s3d.transform(s3d.copy(support), mirror="x")    guard = s3d.at(wire_guard(), z=80.5)    handle = s3d.at(carrying_handle(), y=1, z=222)    return s3d.assembly("lantern", base, glass, support, twin, guard, handle)  def reservoir(r=58, rim=62, h=74, shoulder=47, neck=28, lip=5, filler=18, recess=6, inner=48):    body = s3d.revolve("tank", s3d.poly([(0,recess),(inner,recess),(rim-lip*2,0),(rim,0),(rim,lip),(r,lip*2),(r,shoulder),(neck,h-8),(neck,h),(0,h)]))    s3d.material(body, "painted_metal", color="#3f540c")    fill = s3d.at(s3d.cylinder("filler", d=filler, h=5), x=22, y=-29, z=57, ry=25)    s3d.material(fill,"steel",color="#3f3c39")    return s3d.group("reservoir", body, fill)  def chimney(h=146, foot=26, belly=47):    body = s3d.revolve("red_chimney", s3d.poly([(0,0),(foot,0),(foot,9),(32,15),(43,24),(belly,34),(46,48),(40,80),(34,105),(23,h),(0,h)]))    s3d.material(body,"glossy_plastic",color="#9f0d00",roughness=0.3)    cap_placed = s3d.at(cap(), z=139)    return s3d.group("chimney", body, cap_placed)  def cap(r=30, h=69, loop_w=20, loop_h=23, wire=2.5):    body = s3d.revolve("cap_body",s3d.poly([(0,0),(23,0),(23,8),(34,10),(34,14),(r,15),(r,43),(r-2,45),(r,47),(r,56),(14,63),(6,h),(0,h)]))    s3d.material(body,"painted_metal",color="#364908")    rim = s3d.at(s3d.torus("cap_rim",d=r*2,d_wire=3),z=56)    s3d.material(rim,"steel",color="#3f3c39")    loop = s3d.wire("cap_loop",path=[(-loop_w/3,-1,h-2),(-loop_w/2,-1,h+loop_h*0.65),(-loop_w/3,-1,h+loop_h),(loop_w/3,-1,h+loop_h),(loop_w/2,-1,h+loop_h*0.65),(loop_w/3,-1,h-2)],d=wire,fillet=3)    s3d.material(loop,"steel",color="#482e1e")    return s3d.group("cap",body,rim,loop)  def side_support(w=19,d=14,h=202):    body = s3d.loft("support",s3d.station(z=0,w=w,d=d,x=-12,n=3),s3d.station(z=10,w=w,d=d,x=6,n=3),s3d.station(z=30,w=w,d=d,x=11,n=3),s3d.station(z=65,w=w,d=d,x=5,n=3),s3d.station(z=150,w=w,d=d,x=-7,n=3),s3d.station(z=175,w=w,d=d,x=-12,n=3),s3d.station(z=185,w=w,d=d,x=-20,n=3),s3d.station(z=190,w=w,d=d,x=-29,n=3))    s3d.material(body,"painted_metal",color="#3f540c")    return s3d.group("side_support",body)  def wire_guard(r=49,wire=3,h=65):    rim = s3d.at(s3d.torus("guard_ring",d=r*2,d_wire=wire),z=20)    s3d.material(rim,"steel",color="#3f3c39")    path=s3d.spline([(-r,0,18),(-r*0.7,-r*0.7,28),(0,-r,40),(r*0.7,-r*0.7,53),(r,0,58)])    a=s3d.wire("cross_guard",path=path,d=wire)    s3d.material(a,"steel",color="#55534d")    b=s3d.transform(s3d.copy(a),mirror="x")    c=s3d.transform(s3d.copy(a),mirror="y")    e=s3d.transform(s3d.copy(b),mirror="y")    return s3d.group("wire_guard",rim,a,b,c,e)  def carrying_handle(w=127,d=4,h=124,grip=40):    bail=s3d.wire("bail",path=[(-48,0,0),(-w/2,0,15),(-50,0,42),(-48,0,93),(-39,0,111),(-grip/2,0,h-4),(grip/2,0,h-4),(39,0,111),(48,0,93),(50,0,42),(w/2,0,15),(48,0,0)],d=d,fillet=7)    s3d.material(bail,"steel",color="#55534d")    grip_body=s3d.at(s3d.cylinder("grip",d=8,h=grip),x=-grip/2,z=h-4,ry=90)    s3d.material(grip_body,"wood" if False else "walnut",color="#482e1e")    return s3d.group("carrying_handle",bail,grip_body)

The most diverse 3D-as-code dataset library

100,000

288 objects of the dataset, rendered side by side

Recreated in codefrom five open collections

Every object began in an open collection. Our models rewrote each one as a Sand3D program, checked against its original. The result is a 3D model fully controllable through code.

  • 67K

    ObjaverseEveryday objects, rewritten as code.

  • 24K

    CADMechanical parts, in the same language.

  • 9.2K

    ArticraftDoors and drawers, with joints in code.

  • 2.3K

    NVIDIA SimReadySimulation objects, translated to Sand3D.

  • 3.1K

    AutoMateAssemblies, mating joints included.

Articulated objectsyou can move

10K+ articulated objects and 36K joints, each checked against its source.
Every joint is declared in the program, with its axis and its limits.

Tackle box, rendered from its program

Tackle box3 joints

Open source onHugging Face and GitHub

The dataset is on Hugging Face, and the Sand3D library that runs the programs is on GitHub. Download the collection, read any program, open any mesh.