Skip to main content

🔧 Atomic CAD, mesh, SDF, cadquery, neural & print tools for Strands agents — prompt-to-print pipeline

Project description

🔧 strands-cad

Atomic CAD, mesh, SDF, cadquery, neural & print tools for Strands agents.

Four independent paths to a printable 3D asset:

Path Tool Best For
Parametric SCAD scad_render_stl Mechanical, brackets, parametric families
B-rep CAD (NURBS) cq_render_stl / cq_render_step Fillets, chamfers, engineering-grade parts
SDF / implicit math sdf_render_stl Organic, twisted, TPMS, blended surfaces
Neural (text/image → 3D) neural_text_to_stl AI generation from prompt or reference photo

All roads lead to STL → 3MF → Bambu Lab.

Install

pip install strands-cad

Everything is a hard dependency — no extras needed. Includes: trimesh, sdf (fogleman), cadquery, shap-e, torch, scikit-image, fast-simplification, mujoco, paho-mqtt, scipy, numpy, meshio.

External (system):

  • openscad for scad_* tools (brew install openscad)
  • bambu-studio for slice_bambu (bambulab.com)

The 51 Atomic Tools

Layer Tools
SCAD (parametric) scad_probe, scad_render_stl, scad_render_png, scad_validate
CadQuery (B-rep, NURBS) cq_render_stl, cq_render_step, cq_import_step, cq_render_svg
SDF (implicit math) sdf_render_stl, sdf_list_primitives, sdf_gyroid_infill, sdf_from_function, sdf_lattice_infill_stl
Neural (AI generation) neural_text_to_stl, neural_image_to_stl
Point Cloud pointcloud_from_stl, pointcloud_to_stl, pointcloud_downsample
STL / Mesh stl_parse, stl_volume, stl_bbox, stl_weight, stl_repair, stl_transform, stl_convert, mesh_decimate, mesh_normalize, mesh_boolean, mesh_combine, mesh_hollow
3MF mf3_pack, mf3_unpack, mf3_read_metadata
Slice slice_bambu, slice_profile_get, slice_estimate
Bambu Printer bambu_connect, bambu_send, bambu_status, bambu_control, bambu_camera, bambu_ams
Sim sim_build_mjcf, sim_run_headless, sim_view_live, sim_inertia_from_stl
Preview preview_serve, preview_stop
Meta bom_parse, bom_total, journal_append

Quick Examples

Parametric CAD (CadQuery)

from strands_cad import cq_render_stl

cq_render_stl(script='''
result = (
    cq.Workplane("XY").box(60, 40, 5)
    .edges().fillet(2)
    .faces(">Z").hole(20)
)
''', output_stl="bracket.stl")

Implicit Math (SDF)

from strands_cad import sdf_render_stl

sdf_render_stl(
    expression="torus(30, 8).twist(radians(180)/60)",
    output_stl="twisted_torus.stl",
    resolution=0.4,
)

AI Text → 3D (Shap-E)

from strands_cad import neural_text_to_stl

neural_text_to_stl(
    prompt="a stylized rocket ship",
    output_stl="rocket.stl",
    steps=64,
)

Full agent

from strands import Agent
from strands_cad import ALL_TOOLS

agent = Agent(tools=ALL_TOOLS)
agent("Generate a mechanical bracket with M4 mounting holes, "
      "verify weight in PLA, and pack it for my Bambu P1S.")

Design Principles

  • Atomic — one tool = one verb = one input shape = one output shape
  • No orchestration inside tools; the agent composes
  • No hidden state except the Bambu MQTT connection handle
  • Standard response: {status, content: [{text}], ...extras}

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strands_cad-0.3.0.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strands_cad-0.3.0-py3-none-any.whl (50.3 kB view details)

Uploaded Python 3

File details

Details for the file strands_cad-0.3.0.tar.gz.

File metadata

  • Download URL: strands_cad-0.3.0.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for strands_cad-0.3.0.tar.gz
Algorithm Hash digest
SHA256 16f7b5545c6329acd5fdc3a5fdfe92c2b2798ea72a8f2498607ee3fa72015bda
MD5 04acd19e3132cd1aa4de7b871e140103
BLAKE2b-256 b9c228d91d1ada0f275da782a0f3a94f1b430ef5e52a5dc56d98414c4857f669

See more details on using hashes here.

File details

Details for the file strands_cad-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: strands_cad-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 50.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for strands_cad-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9912caa80e4bcb0e16869d3135e365dd06dcbe594ba8ca3700340d3425cf27ff
MD5 5604abf38123debe44b5af55fdb8bb6b
BLAKE2b-256 b9220128cc90fa8e388b0e45d84848058f919ff32d830fc883ca1bf43604e3f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page