FastBuild123
A browser UI for build123d models that is generated directly from the code and has two way caching (both of the UI inputs and the code itself) to enable live, responsive updates of the parameters.
Quick start
Try a bundled example with uv:
uvx fastbuild123 demo enclosure
Install in your project:
uv add fastbuild123 # or: pip install fastbuild123
Save this as my_model.py:
from typing import Annotated
from build123d import Box, Part
from fastbuild import App, Range
app = App()
@app.part()
def block(
width: Annotated[float, Range(20, 200, step=1, unit="mm")] = 80,
depth: float = 50,
height: float = 30,
) -> Part:
return Box(width, depth, height)
Open it in the browser:
fastbuild view my_model.py
The viewer preserves your camera when rebuilding. If a build fails, it shows the error and keeps the last working model.
Parameters
Every parameter needs a type annotation and a default value.
| Type | Control |
|---|---|
float / int with Range(...) |
Slider |
float / int |
Number input |
bool |
Checkbox |
Literal / Enum |
Dropdown |
Use Group("Label") and Desc("Help text") from fastbuild inside Annotated
to group controls and add tooltips. Multiple @app.part() functions get a part selector.
Export files for printing/milling/etc
fastbuild export my_model.py block --param width=120 -o block.step
Values are validated against each parameter's Range; output format follows the
extension (.step/.stp/.stl).
AI
AI coding agents
Install the bundled skill with API usage and caching guidance:
fastbuild agent-docs --install
Writes to .claude/skills/fastbuild123/ and .agents/skills/fastbuild123/.
Re-run after upgrading. Omit --install to print the docs.
Requirements
Python 3.10–3.13 on macOS, Linux (glibc 2.31+, x86-64 or aarch64), or 64-bit Windows. The install is roughly 500 MB, mostly OpenCASCADE. Alpine/musl is not supported.
License
MIT — see LICENSE. Bundles three-cad-viewer (MIT), whose license is
included at fastbuild/static/vendor/LICENSE-three-cad-viewer.
Metadata
Release files for fastbuild123 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastbuild123-0.1.6.tar.gz | 639.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastbuild123-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / fastbuild123-0.1.6.tar.gz
| Download URL | fastbuild123-0.1.6.tar.gz |
|---|---|
| Size | 639.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8a1e7ab96bcc52532ef0c46ba317ad9de6ea994f44483bc8bf512b02b36655f
|
|
BLAKE2b-256 checksum How to use checksums |
93db5e1651334f23f54dead26ee7ff6dbdf5188594a6d316119eaf5dc8ad2ac5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|
Release files / fastbuild123-0.1.6-py3-none-any.whl
| Download URL | fastbuild123-0.1.6-py3-none-any.whl |
|---|---|
| Size | 497.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
437f8fe59013105b0365d4ee92e881ad3602b8663864a8a0a14fa5167d79fe9a
|
|
BLAKE2b-256 checksum How to use checksums |
4037e3aff634f74fbd2ffa84c5b6504bda98d6411b1c7485a5e41641e6345fb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|