| title | NaturalCAD |
|---|---|
| emoji | 🍃 |
| colorFrom | gray |
| colorTo | blue |
| sdk | docker |
| app_port | 7860 |
| pinned | false |
NaturalCAD is a conversational CAD product built around build123d, with the main product lane now centered on the website frontend in apps/web.
The current product direction is:
- a hosted web app with a simple loop: prompt, generate, iterate, export
- a broad text-to-CAD entry point
- growing toward stronger replacement-part reconstruction and fit-driven refinement
- Main website/app frontend lives in
apps/web - Legacy public Hugging Face demo still exists at: https://huggingface.co/spaces/kNOWare/naturalcad
- Use this repo if you want to run locally, self-host, or continue product development
Current output posture:
- browser preview uses GLB when available
- STEP remains the main CAD handoff artifact
- STL remains available as a mesh export
NaturalCAD is still early, but the real work is no longer just a text-to-CAD toy. The product is being shaped toward useful multi-turn CAD generation and, over time, replacement-part reconstruction.
apps/web- main website + app frontend for the hosted product laneapps/backend-api- control-plane API for sessions, projects, versions, and iterationapps/cad-worker- CAD execution worker for LLM + build123d generation
Legacy / older lanes still in the repo:
app.py- Hugging Face Space entrypointapps/gradio-demo- older demo-first UI laneapps/web-visualizer- earlier React/Vite prototypearchive/- older or superseded material kept for reference
- Verify the website app builds:
npm run web:typecheck npm run web:build
- Run local website development:
npm run web:dev
- Point the frontend at the backend with:
NATURALCAD_BACKEND_URL
- If the backend is protected, also set:
NATURALCAD_API_KEY
- On the backend side, provide:
OPENROUTER_API_KEYSUPABASE_URLSUPABASE_SERVICE_ROLE_KEYSUPABASE_BUCKETNATURALCAD_API_KEY
If you need to run the older Hugging Face/demo-oriented app:
npm run frontend:localOptional local backend contract test:
npm run backend:localThat uses the helper scripts:
scripts/run-local-backend.shscripts/run-local-frontend.sh
Notes:
- frontend local dev needs Python 3.10-3.13 because
build123ddoes not currently publish wheels for Python 3.14+ - the frontend helper expects a working Python venv; default path is
~/.openclaw/workspace/.venvs/cadrender312 - for hosted testing, set
NATURALCAD_BACKEND_URLto the Modal endpoint - if
NATURALCAD_BACKEND_URLis unset, the helper defaults tohttp://127.0.0.1:8010 - if
apps/backend-api/.envexists, the frontend helper also reusesAPI_SHARED_SECRETasNATURALCAD_API_KEY - if you want a different frontend venv, set
NATURALCAD_FRONTEND_VENV=/path/to/venv
Manual fallback:
pip install -r requirements.txt
python app.pyThe current deployment direction is:
- Vercel for the website/frontend lane
- Modal or equivalent hosted worker for CAD execution
- Supabase for project/session/version data and artifact storage
- Cloudflare in front of the public domain setup
Current recommended shape:
apps/web= public product frontend- backend API = session/project/version control plane
- CAD worker = build123d generation and artifact production
- Supabase = state + storage
- OpenRouter or equivalent = model provider layer
The Hugging Face app still exists as a legacy demo lane, but it is no longer the main product framing for this repo.
Frontend:
NATURALCAD_BACKEND_URLNATURALCAD_API_KEYif the backend is protected
Backend / worker:
OPENROUTER_API_KEYOPENROUTER_MODEL(optional, default set in worker)SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYSUPABASE_BUCKETNATURALCAD_API_KEY
Before any push, run:
./scripts/prepush-check.shSee docs/github-push-safety.md for the full branch and review policy.
docs/naturalcad-remaining-work.mddocs/sprint-v1-domain-app.mddocs/spec-3d-viewer-v1.mddocs/backend-api-v1.mddocs/startup-shutdown-playbook.mddocs/publish-checklist.mddocs/backend-v0.mddocs/security-policy-v0.mddocs/engine-assembly-milestone.md

