What did NVIDIA release?

NVIDIA’s Omniverse team has published USD BRep, described as a standalone C++ and Python library for NURBS-based boundary-representation solid modelling. The repository appeared on GitHub on 8 October, its changelog dates version 1.0.0 to that day, and NVIDIA tagged the v1.0.0 release and uploaded a Python package on 9 October. The code is licensed under Apache 2.0, with copyright notices running from 2020 to 2026.

The geometry engine inside is SMLib. NVIDIA’s SMLib manual describes it as a full-scale library of NURBS and polygonal modelling tools, an engine on which 3D applications can be built, with booleans, fillets, shelling and feature removal, built on the NLib curve and surface library by Wayne Tiller and Les Piegl. The same page says SMLib was distributed as source to licensees, that licences are limited to legacy customers and that no new licences will be granted. USD BRep makes that kernel available to anyone.

NVIDIA has not published a blog post or press release about it. The news spread on 12 October, when developers started building on the code and posts about it trended on X. By the time we checked on 13 October the repository had about 430 stars, 34 forks and its first three bug reports.

What is a B-rep kernel, and why is it hard to get?

Most 3D graphics, including games and the meshes generated by today’s text-to-3D models, are made of triangles. That is fine for display but not for manufacturing. Engineering CAD instead uses boundary representation, or B-rep: a solid is described by its exact bounding surfaces, such as planes, cylinders and freeform NURBS patches, stitched together by a topology of shells, faces, edges and vertices. A B-rep cylinder is a true cylinder at any zoom level, so its volume, a hole’s diameter or the clearance between two parts can be calculated exactly.

The kernel is the library that makes this work, and it is notoriously hard to write. Booleans, which cut one solid from another, must intersect curved surfaces robustly; fillets must round edges without breaking the model; healing must repair imperfect geometry imported from other systems. Commercial CAD tools rely on a handful of mature commercial kernels. The main open-source alternative has long been Open CASCADE, which underpins tools such as FreeCAD and build123d. A second well-tested kernel under a permissive licence gives developers a new option.

Two views of the same bracket. Above, a grey CAD model on a blue background with a curved cut-out, a cylindrical boss, four small holes around a larger hexagonal opening, and mounting holes at each end. Below, the matching aluminium part machined from it, with a sandblasted matte finish and a shiny threaded boss.
An exact CAD model and the aluminium part milled from it. This is the kind of geometry a B-rep kernel represents. Image by Mike1024, 2009 (public domain); not made with SMLib. Photo: Mike1024 (via Wikimedia Commons). Public domain · Cropped and resized.

What is in the repository?

The repository’s AGENTS.md lays out four layers. At the bottom is the SMLib C++ kernel itself. SM_API is a stable C-style C++ wrapper whose SmApi functions cover booleans, sweeps, fillets and tessellation, the conversion of exact geometry into triangle meshes. SM_API_USD and two internal libraries handle import and export to OpenUSD, where solids are stored as a custom BrepArray schema next to ordinary USD prims. Python bindings, built with pybind11, expose the API as the usd_brep package.

OpenUSD is the scene format Pixar created and NVIDIA uses for Omniverse and its robotics and digital-twin tools. It has had no standard way to store exact CAD solids; the repository includes snapshots of two Alliance for OpenUSD working-group proposals, submitted in May, that aim to add one. USD BRep’s heal_file function can repair the solids in a USD scene while keeping its layers, references, instancing and materials.

There is also a Python GUI, validators for BrepArray data and solid geometry, runnable examples for each API layer, and STEP, IGES and JT test models, the formats CAD tools use to exchange parts. A KNOWN_ISSUES file lists bugs openly; the repository is not accepting code contributions for now, though bug reports are welcome.

Diagram of four stacked layers. Top, the usd_brep Python package, installed with pip install usd-brep, exposing primitives, curves, surfaces, booleans, sweeps, fillets, offsets, input and output, USD and tessellation. Next, SM_API_USD with BREP_SM_USD and BREP_USD_DATA, which import and export exact solids as a custom BrepArray schema in OpenUSD. Then SM_API, a stable C-style C++ wrapper. Bottom, the SMLib C++ NURBS boundary-representation kernel. A side panel notes 19 agent skills including text-to-3D asset generation, STEP, IGES and JT test fixtures, a Python GUI and validators, and the Apache 2.0 licence.
From kernel to Python: NVIDIA ships all four layers under Apache 2.0. AI Lookout diagram based on the repository’s own documentation. Photo: AI Lookout (source: NVIDIA-Omniverse/usd-brep). CC BY 4.0 · Cropped and resized.

Why are AI agents part of the story?

NVIDIA clearly expects AI agents to use the code. Besides the AGENTS.md guide, a .agents folder holds 19 skills, the instruction files coding agents load for specific jobs: booleans, fillets, healing, tessellation, maintaining the Python and C++ APIs, picking tests, and one for text-to-3D asset generation. That playbook tells an agent to build a described object from analytic primitives and NURBS surfaces, combine them with sweeps, booleans and fillets, tessellate the result, publish it as USD meshes, render a screenshot and check its own work before reporting back.

The first outside projects arrived within days. On 12 October the Swiss CAD company AWV Informatik, which makes the ClassCAD engine, published smlibpy, an MIT-licensed Python modelling library on the SMLib kernel with an API modelled on CadQuery and build123d, STEP import and export, a software renderer that draws technical drawings, sections and curvature maps, and an MCP server and Claude Code plugin so agents can build and inspect parts. Its PyPI listing so far only reserves the name. Another developer released keel, a small CAD language that builds the kernel natively on macOS and writes exact B-rep geometry into USD.

Agent-driven design is an active research area; recently BrickBench tested whether coding agents can design buildable LEGO sets. An exact kernel lets an agent check real numbers, such as volumes, wall thicknesses and whether a fillet fits, instead of judging a mesh by eye. Tools like the Anatomy diagram skill show the appetite for agents that draw technical objects; USD BRep gives them engineering-grade geometry underneath.

A grid of 19 rendered tiles from smlibpy’s software renderer, showing a bronze pipe flange and a blue L-shaped bracket as an isometric view, first- and third-angle technical drawings, hidden-line views, a hatched section, a before-and-after difference image, a four-view sheet, highlighted faces and markers, a sketch on a face, size annotations, an x-ray view, one colour per body, mirrored views, and zebra-stripe and curvature maps comparing a circular fillet with a curvature-continuous blend.
What an agent sees: AWV Informatik’s smlibpy, built on the newly open kernel, renders parts as drawings, sections and curvature maps. From the smlibpy repository (MIT). Photo: AWV Informatik AG, smlibpy (MIT License). MIT · Cropped and resized.

How can developers try it?

The quickest route is pip install usd-brep, which provides wheels for CPython 3.12 on Windows and Linux, on x86-64 and Arm. The wheel bundles the OpenUSD runtime it was built against, so no separate USD install is needed. Functions are grouped into submodules such as primitives, curves, surfaces, booleans, sweeps, fillets, io and usd, and the package should be imported before opening any USD stage so its schema plugin registers.

Building from source needs Git LFS for the test models, plus Visual Studio on Windows or build-essential on Linux; NVIDIA’s build tooling fetches OpenUSD, Python and pybind11 itself. Apple Silicon Macs can build the kernel and Python bindings, but OpenUSD support there requires a locally staged copy. API documentation is published on GitHub Pages.

What does it mean for CAD and physical AI?

For NVIDIA, the release fills a gap in its physical-AI stack. Robots, factory digital twins and simulators increasingly use OpenUSD, but the parts they model start life as exact CAD. Putting a B-rep kernel and a CAD-to-USD bridge in the open makes it easier to carry engineering geometry into simulation without first flattening it into meshes. It sits alongside other recent open releases aimed at robotics developers, such as AWS’s open Physical AI Toolchain built on NVIDIA’s stack.

For small manufacturers, hobbyists and start-ups, a capable kernel under Apache 2.0 lowers the cost of building CAD tools, configurators and automated design checks. It also gives AI companies a free, scriptable geometry engine for training and evaluating design agents. Whether it becomes a common foundation depends on things the release alone cannot show: robustness across real-world files, documentation and whether NVIDIA keeps maintaining it in the open.

What are the caveats?

This is a fresh 1.0. NVIDIA’s known-issues list is candid: remove_fillet reports success without removing anything, heal_brep can report success when a repair failed, and healing can mis-repair tori, spheres and cylinders imported from other CAD systems. The first bug reports filed on GitHub describe a boolean union silently dropping a mirrored part, a fillet call corrupting a different solid, and a sweep producing a zero-volume body.

The source code is Apache 2.0, but the PyPI package also lists BSD, MIT, Boost and other licences for bundled components, so companies shipping it should read the third-party notices. NVIDIA is not taking pull requests, macOS is a second-class build, and there is no announcement saying how the project will be supported. We have not built or tested the library ourselves.

Common questions

Is NVIDIA’s SMLib kernel free for commercial use?

Yes. USD BRep, which contains the SMLib kernel, is licensed under Apache 2.0. Bundled third-party components carry their own licences, listed in the repository’s third-party notices.

How do I install USD BRep?

Run pip install usd-brep with CPython 3.12 on Windows or Linux. The wheel includes its own OpenUSD runtime, and the full source can be built from GitHub.

Can AI agents use USD BRep?

Yes. The repository includes an AGENTS.md file and 19 agent skills, including text-to-3D asset generation, and AWV Informatik’s smlibpy adds an MCP server on top of the kernel.

THE TAKEAWAY

What to remember

NVIDIA has released USD BRep, an Apache 2.0 version of the SMLib NURBS solid-modelling kernel with Python bindings, OpenUSD support and skills for AI agents. CAD developers are already building on it, but it is a new 1.0 with documented bugs.

Sources & further reading

  1. NVIDIA-Omniverse/usd-brep (README, CHANGELOG, AGENTS.md, KNOWN_ISSUES) ↗
  2. Omniverse USD BRep v1.0.0 (release) ↗
  3. USD BRep Python API documentation ↗
  4. SMLib Introduction (SMLib manual) ↗
  5. smlibpy (README) ↗
  6. keel (README) ↗
How this story was made

Written by Kristian Kostov with AI assistance and checked against the linked sources. Company performance claims are attributed to the company. Analysis reflects AiLookout’s interpretation; we have not independently tested the products discussed. Cover photography is illustrative and does not depict the specific announcement or product.

Our editorial standards
Back to all stories