Skip to content
Tools for creating 3D-printable microfluidic devices and associated components
JavaScript Python OpenSCAD Other
Branch: master
Clone or download
Pull request Compare This branch is 149 commits ahead, 583 commits behind CIDARLAB:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


User-friendly CAD for microfluidic devices.

Try it out


2D Navigation

Hold the middle mouse button to pan. Scroll the middle mouse to zoom.

Selecting and Configuring Feature Types

Use the buttons in the menu (on the left) to select a feature type to place. The gear-shaped button will bring up a menu that will allow you to adjust the parameters for that feature type.

Click on a layer to select it. This will cause new features to be placed only into that layer. The currently-selected layer's color will be reflected in the button color of any selected feature.

Placing Features

Left click on the device canvas (on the right) to place a feature. Some features (such as Channels and Chambers) are determined by two points, and are placed by clicking and dragging.

Right click on a feature to select it. Right click and drag to select multiple features at once.

If a layer has been selected, only features on that layer can be selected this way.

Editing Features

Right click on any selected feature to bring up a dialog box which will allow you to edit its parameters. If more than one feature is selected, parameters will be inherited by all currently selected features of the same type as the one you clicked.

Switching between 2D and 3D views

Under select view in the left menu, click 3D to switch to a non-editable 3D view of your device. Click 2D to switch back and continue editing.

3D Navigation

Hold left or middle mouse button to pan. Hold right mouse button to rotate. Scroll middle mouse to zoom.

Saving Designs

Under Save in the left menu, click a to download the current design in the selected format. JSON is used to allow designs to be saved and loaded again later. STL files are for 3D printing, and SVG files are for generating 2D photomasks.

Loading Designs

After saving a device design to JSON, drag and drop it from your computer onto the device canvas to load it.

Development Setup

Want to play around with the 3DuF source?

Instructions for installation, build, and test are in the wiki.


This is an active research project, and as such, this codebase could (and should) change dramatically as the code matures and new features are implemented. The master branch should always be functional, but we make no guarantee of backwards-compatability with previous versions. Expect bugs, excessive re-factoring, and cheeky commit messages.

You can’t perform that action at this time.