Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>FluidCADNew to Visual Studio Code? Get it now.
FluidCAD

FluidCAD

FluidCAD

|
233 installs
| (0) | Free
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FluidCAD logo

Explore · Download · Documentation · Tutorials

Pull requests are not being accepted yet while the design and roadmap take shape. Community contributions are planned for v0.1.0.

FluidCAD is under active development; APIs and features may change.

FluidCAD is an open-source CAD app for designing parts and moving assemblies. Sketch, constrain, and shape your model in a live 3D workspace, with ordinary JavaScript behind every feature. Change a dimension, reuse a part, or automate a pattern. The model rebuilds with you.

Selecting sketch regions and extruding them into a solid in FluidCAD

See what you can build

From sketches to solid parts

Draw a profile and extrude it, revolve it around an axis, or sweep it along a path. Refine the result with cuts, fillets, chamfers, shells, and booleans; repeat features in linear, circular, or mirror patterns.

Use the toolbar to create features and FluidCAD writes the code. Double-click a feature in the timeline to edit it, or step back through the history to see how the model was built.

Sketches that keep their shape

Dimensions and constraints capture your design intent: keep holes concentric, sides parallel, or an arc tangent to a line. The solver maintains those relationships as you drag, while snapping adds constraints as you draw.

Two circles with diameters of 60 and 30 mm joined by upper and lower tangent lines, with dimensions, constraint badges, and a fully constrained status

Readable code, reusable designs

A model is a JavaScript file you can inspect, edit, and version with Git. Here is a complete mounting plate: sketch an outline, add thickness, then cut two holes.

import { part, param, sketch, extrude, circle, cut } from 'fluidcad/core';
import { rect } from 'fluidcad/shapes';

export const plate = part('Mounting plate', () => {
  const thickness = param('Thickness', 6);
  const holeDiameter = param('Hole diameter', 5);

  // Sketch the outline, then give it thickness.
  sketch('xy', () => {
    rect([0, 0], 80, 40).centered();
  });
  const body = extrude(thickness);

  // Sketch on the top face and cut through the plate.
  sketch(body.endFaces(), () => {
    circle([-25, 0], holeDiameter);
    circle([25, 0], holeDiameter);
  });
  cut(thickness);
});

Save this as plate.part.js. Adjust Thickness or Hole diameter in the Parameters panel to resize the part; body.endFaces() keeps the holes on its top face. Dimensions use your project’s units (millimeters by default). Assemblies can override these parameters per instance.

Parts that work together

Insert parts into an .assembly.js file and connect them with mates. Build a hinge with a revolute joint, a carriage with a slider, or a mechanism with several linked parts. Drag it to explore its motion, set joint limits, or animate it from the Joints panel.

A four-cylinder engine assembly with its parts, connectors, and joints in the FluidCAD workspace

Reuse sub-assemblies and replicate them across a design, like the piston assemblies in this engine. Explore assemblies →

From everyday objects to mechanical parts

Build a lantern, a tray, or a mechanical part by following a complete tutorial. Each takes you from the first sketch to the finished model.

![Finished lantern model](https://github.com/Fluid-CAD/FluidCAD/raw/HEAD/website/static/img/docs/tutorials/lantern-final.png)
Lantern
![Finished ice cube tray model](https://github.com/Fluid-CAD/FluidCAD/raw/HEAD/website/static/img/docs/tutorials/ice-cube-tray-final.png)
Ice cube tray
![Finished mechanical part from the CSWP sample exam](https://github.com/Fluid-CAD/FluidCAD/raw/HEAD/website/static/img/docs/tutorials/cswp-sample-exam-final.png)
CSWP sample exam

Bring in existing STEP models with their colors, export STEP to other CAD tools, or export STL for 3D printing. Assembly STEP exports preserve the part tree, and PNG export gives you an image to share.

Download

Download the latest release, install it, and open a project folder.

Platform Package Installation
Windows (x64) .exe Run the installer. If SmartScreen appears, choose More info → Run anyway; builds are not yet code-signed.
Linux (x64) .AppImage or .deb Make the AppImage executable and run it, or use sudo apt install ./FluidCAD-*.deb.
macOS (Apple Silicon) .dmg or .zip Drag FluidCAD into Applications.

Prefer the terminal?

With Node.js and npm installed, the desktop app's start screen opens in your browser from any folder:

npx fluidcad

Create or open projects there; each opens in a tab of its own. To set a project up from the terminal instead:

mkdir my-model && cd my-model
npm init -y
npm install fluidcad
npx fluidcad init
npx fluidcad serve

This creates a project with an empty part, part1.part.js, and opens the workspace in your browser. Both the desktop app and browser workspace include a code editor and a live 3D viewport.

Start with the getting-started guide to build a hinge, or choose a tutorial.

Fits your workflow

Editors

Keep npx fluidcad serve running beside any editor; the viewport updates when you save. For an integrated workflow, use the VS Code extension or Neovim plugin.

AI agents

The bundled MCP server lets agents inspect geometry, take screenshots, edit model files, and look up the API in a running workspace. Configure your MCP client to run:

npx -y fluidcad mcp

Install the companion modeling skills with npx skills add Fluid-CAD/FluidCAD. See the MCP setup guide for client configuration and usage.

About the project

FluidCAD uses the OpenCascade B-Rep modeling kernel through opencascade.js for precise solid geometry. Thanks to the opencascade.js team for making it available in WebAssembly.

Licensed under MIT.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft