FastBuild123
Turn any build123d model into a live, interactive
parametric web UI. Annotate your part function's parameters with a FastAPI-style
@app.part() decorator and get auto-generated sliders in the browser with instant
3D preview — the type-annotated signature is the UI definition.
Quick start
Run a bundled example without installing anything:
uvx fastbuild123 demo enclosure
Or install it into your own project:
uv add fastbuild123 # or: pip install fastbuild123
fastbuild view my_model.py
A browser page opens with parameter controls on the left and a live 3D view on the right. Drag a slider or save the file — the model updates in place, keeping your camera pose, tree state, and clipping planes. A model that raises keeps the last-good geometry on screen with an error banner; fix the file and it recovers.
Defining parts
from typing import Annotated, Literal
from build123d import Part, Box
from fastbuild import App, Desc, Group, Range
app = App()
@app.part()
def enclosure(
width: Annotated[float, Range(20, 200, step=1, unit="mm")] = 80,
wall: Annotated[float, Range(0.8, 5, step=0.1, unit="mm"), Desc("Shell thickness")] = 2,
ribs: Annotated[int, Range(0, 8), Group("Ribs")] = 4,
vented: bool = False,
style: Literal["rounded", "chamfered"] = "rounded",
) -> Part:
...
Widget mapping: float/int + Range → slider, bare numbers → number input,
bool → checkbox, Literal/Enum → dropdown. Every parameter needs a default —
defaults are the initial build. Multiple @app.part() functions in one file get a
part selector. Add Group("Label") to a parameter's annotation to place it under
a named collapsible section in the panel; ungrouped parameters render first.
Add Desc("...") to show an info icon beside the parameter that reveals the
description as a tooltip on hover.
Headless export
fastbuild export my_model.py enclosure --param width=120 -o enclosure.step
Values are validated against each parameter's Range; output format follows the
extension (.step/.stp/.stl).
AI coding agents
FastBuild123 ships its own agent skill doc — API rules plus caching best practices in the Agent Skills format. Install it into your project so Claude Code, Codex, Cursor, and friends pick it up automatically:
fastbuild agent-docs --install # writes .claude/skills/fastbuild123/ and .agents/skills/fastbuild123/
Re-run after upgrading the package; plain fastbuild agent-docs prints the doc to
stdout instead. The library is also indexed on Context7
(configured via context7.json) for agents using the Context7 MCP server.
Requirements
Python 3.10–3.13 on macOS (Apple Silicon or Intel), Linux (glibc 2.31+, x86-64 or
aarch64), or 64-bit Windows — wherever cadquery-ocp publishes wheels. Expect a
~500 MB install; the OpenCASCADE kernel is most of it. Alpine/musl is not supported.
Development
uv sync
uv run pytest
uv run fastbuild demo enclosure
Examples live in fastbuild/examples/ so they ship with the package and stay
runnable via fastbuild demo. Specs live in specs/. The 3D component is a
vendored, pinned build of
three-cad-viewer
(fastbuild/static/vendor/, see VERSION there) fed by
ocp-tessellate output over a
versioned websocket protocol.
License
MIT — see LICENSE. Bundles three-cad-viewer (MIT), whose license is
included at fastbuild/static/vendor/LICENSE-three-cad-viewer.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastbuild123-0.1.3.tar.gz.
File metadata
- Download URL: fastbuild123-0.1.3.tar.gz
- Upload date:
- Size: 635.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d48f4715e466bd683218bcd81bd4bee7b9270fa41bf72bf4c220dbacf4c18867
|
|
| MD5 |
542d9c6119a2c34e0ba43e7c7e55d040
|
|
| BLAKE2b-256 |
8bcaa09c2b802bed96b9e3a95cffd175ff6a513fa2fed2c19b23e5a8e683c84a
|
File details
Details for the file fastbuild123-0.1.3-py3-none-any.whl.
File metadata
- Download URL: fastbuild123-0.1.3-py3-none-any.whl
- Upload date:
- Size: 494.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbb78f755d1dd3430400989f3b48f900e9b2e014b4927e3170fe21aa7c4109a1
|
|
| MD5 |
1e2e972290de6679ee0c9c7c9c5af1a4
|
|
| BLAKE2b-256 |
19c7a231dbaa0ed588dc4f6ca16a3de0c1f4bab0a03ae1dce691877e31a1a553
|