Modern CAD for JavaScript Developers

Write parametric 3D models in JavaScript or OpenSCAD. 10-20x faster evaluation with guaranteed manifold output.

Why Choose moicad?

Lightning Fast

JavaScript evaluation is 10-20x faster than OpenSCAD parsing. Instant feedback for rapid prototyping.

🎯

Type Safe

Full TypeScript support with autocomplete. Catch errors at development time, not runtime.

🔄

OpenSCAD Compatible

98-99% OpenSCAD language compatibility. Migrate existing projects with minimal changes.

🛠️

Fluent API

Chainable methods with the Shape class. Write readable, maintainable code.

📦

NPM Package

Install as npm package. Works in browser and Node.js. Build CAD tools into your apps.

Guaranteed Manifold

Built on manifold-3d engine. No topology errors, clean boolean operations every time.

See the Difference

JavaScript (Modern)

// Parametric Bolt Class
class Bolt {
  constructor(length, diameter) {
    this.length = length;
    this.diameter = diameter;
  }

  build() {
    return Shape.cylinder(this.length, this.diameter / 2)
      .union(Shape.sphere(this.diameter * 0.9)
        .translate([0, 0, this.length]))
      .color('silver');
  }
}

export default new Bolt(20, 6).build();

OpenSCAD (Classic)

module bolt(length=20, diameter=6) {
  cylinder(h=length, r=diameter/2);
  translate([0, 0, length])
    sphere(r=diameter * 0.9, $fn=6);
}

bolt();

JavaScript gives you classes, async/await, npm packages, and modern tooling.
OpenSCAD provides familiarity for existing CAD users.

Built for Real Work

🖨️

3D Printing

Design functional parts with parametric models. Export directly to STL for slicing.

⚙️

Mechanical Design

Create precise mechanical assemblies. Test fits and clearances before manufacturing.

🎨

Prototyping

Rapid iteration with instant preview. Share models as JavaScript modules.

Ready to Transform Your CAD Workflow?

Join developers who are building the next generation of parametric design tools.