Skip to content

Repository files navigation

µcad

CI Crates.io Dependency status

µcad Logo

µcad (pronounced microcad) is a description language for modeling parameterizable geometric objects.

Simple basic shapes can be composed to create complex geometries which then can be rendered into STL or SVG files for 3D printing or CNC milling.

Note: This project is in an early stage of development and is not yet feature complete.

Feel free to contribute by opening issues or pull requests.

Content

Quick Start

µcad is programmed in Rust which easily can be installed on several operating systems. You can try it out with an example by using the command line tool microcad which can be installed from crates.io by using the following command line:

cargo install microcad

Note: Currently µcad has no binary install packages so the only ways to install it are with cargo install or from the source code (see section Contribute).

First Example

The following µcad source code defines a part called CsgCube, which has a body of a cube with rounded corners and three cylinders as holes:

csg_cube

use std::math::*;
use std::ops::*;
use std::geo3d::*;

part CsgCube(size: Length) {
    body = Sphere(size / 1.5) & Cube(size);
    holes = Cylinder(size, diameter = size / 1.5).orient([X,Y,Z]);
    body - holes;
}

CsgCube(50mm);

Installation

First, install Ninja Build which is needed to compile the manifold geometry library. For example, Debian based Linux distributions use the following line:

sudo apt install ninja-build cmake

To install the latest release of µcad via cargo, type:

cargo install microcad

Command line usage

After installing, you can run a basic example by typing:

microcad check ./examples/bricks/brick

This will check the input file and will output the model tree. The check command will not export the output geometry.

To generate an STL model file use the export command with an additional output file name:

microcad export ./examples/bricks/brick

The file brick.µcad generate a file calledbrick.stl which can be displayed e.g. with MeshLab.

The resulting STL mesh looks like this:

Parametric Bricks

Using the viewer

To install the latest release of the µcad viewer via cargo, type:

cargo install microcad-viewer

You can run the viewer with a file:

microcad-viewer ./examples/bricks/brick

Documentation

❤️ Support the project

If you like this project, you can help us spend more time on it by donating:

💚 Funded by

Thanks to the Prototype Fund and the Federal Ministry of Research, Technology and Space for funding this project in 2025.

https://prototypefund.de/en/ https://okfn.de/en/ https://www.bmbf.de/EN/

Releases

Packages

Contributors

Languages