Skip to main content

FastBuild123

A browser-based UI for build123d, parametric models, generated directly from your code. Two-way caching of both code and UI inputs keeps parameter changes and model previews fast and responsive. This means you (aka your AI agent) can write code to create your parameterized CAD models and get...

  • Agentic CAD modeling: Preloaded skills let your agent inspect the model from any angle, giving it the visual context it needs to help refine your design.
  • Manufacturing ready CAD: Generate B-Rep and NURBS geometry and export precision CAD formats like STEP
  • Live CAD UI previews: Modify parameters and see the model update in real time.

...and there's No CAD knowledge required. It definitely helps to know what you're doing, but if you're capable of describing what you want to an LLM, you can get pretty far.

https://github.com/user-attachments/assets/ab291672-6d0f-4e3c-a8ef-c5fe7fe363e9

Demo

Try a bundled example with uv:

uvx fastbuild123 demo enclosure

Quick Start

# Install package
uv add fastbuild123      # or: pip install fastbuild123

1. Annotate

from typing import Annotated
from build123d import Box, Part
from fastbuild import App, Range

app = App()

@app.part()
def example_box(
    width: Annotated[float, Range(20, 200, step=1, unit="mm")] = 80,
    depth: float = 50,
    height: float = 30,
) -> Part:
    return Box(width, depth, height)

2. View your geometry

uv run 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

Each parameter you annotate generates a control in the UI (and can have defaults)

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

Obviously, this is the section everyone will care about. The repo’s real value is that it lets you rapidly iterate on CAD models using AI agents. The agents modify the code, which generates an interactive UI you can use to explore and refine the design. You can then iterate by chatting with the agent, which already has the full context of your model.

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.

Contributing and releases

Use Conventional Commit titles for squash merges. See automated releases for version rules, the local dry run, Trusted Publishing setup, and recovery.

License

MIT — see LICENSE.

Metadata

Release files for fastbuild123 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastbuild123 0.1.7
File Size Uploaded
fastbuild123-0.1.7.tar.gz 667.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastbuild123 0.1.7
File Interpreter ABI Platform
fastbuild123-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / fastbuild123-0.1.7.tar.gz

Download URL fastbuild123-0.1.7.tar.gz
Size 667.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0a597e007baafec4a3de8e1c8ab34f457bccb320896ff327f2006e481dd0ac2c
BLAKE2b-256 checksum
How to use checksums
34f10880d43f4427a623eef005addd158411b0a751dc78b246aaf896bffa9332
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / fastbuild123-0.1.7-py3-none-any.whl

Download URL fastbuild123-0.1.7-py3-none-any.whl
Size 500.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f30db0b0671e93dc39495d36082e64f3b7ed7ff0b1101cb8ae1eb16da09f78d1
BLAKE2b-256 checksum
How to use checksums
92b6e766ce3acc296a6da07601d3b8dd99a0b9f0e9c9e26af1515bb7798ac6a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page