Skip to main content
Vecaria

JSCAD Parametric Modeling

Local

Code parametric 3D models in JavaScript, tune them in a form panel and export print-ready STL — a free online OpenSCAD alternative. No upload, no sign-in.

Ctrl+Enter to build

Write JS with @jscad/modeling and a main() returning geometry; building and downloading are separate steps (Ctrl+Enter builds too), and the output filename is customizable (defaults to model.stl). Define getParameterDefinitions() to get a parameter form (JSCAD Customizer style) — changes rebuild automatically. Code runs locally in your browser.

What is it? JSCAD Parametric Modeling lets you write parametric 3D models in JavaScript using the JSCAD API and export the result as STL with a customizable output filename (default model.stl). The code runs locally in your browser. Define getParameterDefinitions() and a form panel appears (JSCAD Customizer style): change a value and the model rebuilds automatically.

TL;DR: Code parametric 3D models in JavaScript (JSCAD), tune them in a form-based parameter panel and export print-ready STL. Free, no upload, no sign-in — runs in your browser.

How to use

  1. Write or edit JSCAD code in the editor (define main() returning geometry); press Ctrl+Enter (⌘+Enter) to build.
  2. Optionally define getParameterDefinitions() — a parameter form (number/int/checkbox/text/select) appears and rebuilds on change, no code edits needed.
  3. Click "Build preview" — the code runs locally and shows an interactive 3D preview.
  4. Set the output filename if you like (defaults to model.stl), then click "Download STL" to save it, ready to print.

FAQ

Do I need to install JSCAD?

No — the JSCAD runtime is loaded in the browser.

Can I use CSG operations?

Yes, JSCAD union/subtract/intersect primitives are available.

How do I expose parameters?

Define getParameterDefinitions() returning { name, type: 'number'|'int'|'checkbox'|'text'|'select', initial, ... } — the page renders a form (Customizer style) and passes the values to main(params).

How does the output filename work?

Type a name in the "Output filename" field — .stl is appended if missing, path segments are stripped, and an empty field falls back to model.stl.

Is my code uploaded?

No — execution and STL generation run entirely in your browser; nothing is stored.

Is it free? Do I need an account?

Single builds are free with a daily allowance and no sign-in — the quota resets every 24 hours. Code execution and STL export run entirely in your browser.

Is this an OpenSCAD alternative?

Yes, for the script-based parametric workflow — but the language is JavaScript, not OpenSCAD's own, so models are written (or rewritten) against the @jscad/modeling API. It won't run .scad files as-is; the upside is no install, a form-based parameter panel (Customizer style) and one-click STL download.

Why is the STL file large?

Export is ASCII STL — several times bigger than binary STL for the same mesh; the geometry is unchanged. Re-encode with any binary STL exporter before slicing if file size matters.

Examples

  • Generate a cube with a hole from JSCAD code → download STL

Supported formats

STL

Limitations

  • Runs in the browser; heavy scripts can be slow.
  • Only STL export.
  • Only @jscad/modeling is injected — other require() calls are rejected.
  • Your code must define a main() returning geometry.
  • For non-uniform sizes use cuboid (cube accepts a scalar size only).
  • Output is ASCII STL (larger than binary format).
  • Code runs locally in your browser and is never uploaded.

Privacy

Privacy first: this tool runs entirely in your browser — your input and files never leave your device, and everything is cleared when you close the page.