Nurb gives coding agents a full CAD workflow instead of asking them to generate meshes. Parts are written as Python functions using build123d and the Open CASCADE Technology kernel, producing real B-rep solids with editable dimensions, fillets, and chamfers rather than triangle meshes. A live browser viewer shows the part updating in near real time as the agent edits it, with sliders for dimensions, section cuts, and orbit controls. Real-world measurements live in a measurements.toml file so agents cannot silently guess dimensions, and Markdown 'cards' beside each part record design decisions and automatically logged facts (dimensions, volume, check results) to give future agent sessions memory. nurb check runs printability rules (thin walls, overhangs, build volume, etc.) with an honest disclosure that sampling-based checks can miss issues. Additional commands support slicing time/material estimates, approximate stress simulation, and multi-part assembly checks. Installable via a macOS app or CLI (curl installer or uv), the project is alpha-stage and licensed under FSL-1.1-MIT, which restricts competing products for two years before converting to MIT.

11m read timeFrom flaviocopes.com
Post cover image
Table of contents
What Nurb isA part is a Python functionNurb creates real CAD solidsThe live viewer closes the loopThe agent skill is part of the productMeasurements are treated as dataCards give the next agent contextThe checks turn print physics into feedbackNurb goes beyond geometryInstall NurbHow I would use NurbThe current limitsWhy I find Nurb interesting

Questions this post answers

How does Nurb make AI-generated CAD parts different from typical text-to-3D mesh generators?

Nurb has a coding agent write parametric parts as Python functions using build123d and the Open CASCADE Technology kernel, producing true B-rep solids rather than triangle meshes. This keeps dimensions as editable parameters, makes fillets and chamfers real CAD operations, allows checks to inspect exact geometry, and enables STEP export with editable CAD data; the mesh used for viewing and printing is generated only afterward as an output. For anyone weighing AI-assisted CAD tools against mesh generators, daily.dev surfaces this kind of hands-on comparison.

How does Nurb prevent an AI agent from guessing at real-world measurements when designing a printable part?

Nurb stores measurements in a measurements.toml file with a value, unit, and how it was obtained, and the part code reads them via measured('name'). If a measurement is missing, Nurb raises an error instead of allowing a guess, and values marked provisional keep triggering a confirmation warning in nurb check until a real measurement replaces them. Developers building measurement-sensitive automation can track patterns like this through daily.dev.

What license does the Nurb CAD tool use and what restrictions does it impose?

Nurb uses the FSL-1.1-MIT license, which is source-available rather than conventional open source from day one. It blocks competing products from using the code for two years after each release, after which that release automatically converts to the permissive MIT license. Anyone evaluating tool licensing trade-offs can follow projects like Nurb on daily.dev.

78.4K Impressions