OpenSCAD + JavaScript = OpenJSCAD, edit locally or remote online, preview in browser direct via WebGL.
JavaScript Other
Latest commit 6ac3983 Dec 24, 2016 @Spiritdude committed on GitHub Merge pull request #207 from z3dev/master
Corrected determination of array parameters
Failed to load latest commit information. preliminary support for vector-based text render Apr 22, 2013
ace Ace 1.2.4 Aug 13, 2016
doc adding geodesic option for sphere() Apr 26, 2013
examples 3D model from Gilbert Duval Oct 23, 2016
imgs replacing in/out imgs Feb 8, 2016
jquery touch screen support Feb 6, 2014
js Removed json from support file extensions, disabling import Dec 3, 2016
Blob.js version number bump to 0.3.0 to reflect new csg.js/format.js Jul 2, 2015 Added information about Quick Reference Aug 21, 2016
LICENSE version bump and openscad.js with MIT license Feb 15, 2015
Makefile Alpha Release 0.5.2 preparations Oct 1, 2016 Removed comments about JSON Nov 23, 2016
big.css New example showing how to use processor and viewer options Sep 11, 2016
big.html Alpha Release 0.5.2 preparations Oct 1, 2016
csg.js Small fixes from testing Oct 23, 2016
formats.js Merging changes from CSG library Aug 21, 2016
htaccess_example .htaccess example for use with a php server installation. Sep 24, 2014
index.html Removed comments about JSON Nov 23, 2016
lightgl.js 0.001: initial version Mar 10, 2013
min.css Example of viewer with minimal footprint Dec 11, 2015
min.html Alpha Release 0.5.2 preparations Oct 1, 2016
openjscad Added support for conversions to/from JSON Oct 15, 2016
openjscad.css Added new div and styles for object range selector Sep 18, 2016
openjscad.js Corrected determination of array parameters Dec 25, 2016
openscad-openjscad-translator.js openscad import fix scale(1.5) works, fix of font-size on editor for … Jun 10, 2013
openscad.js Alpha Release 0.5.2 preparations Oct 1, 2016
remote.php Added an alternative fetching script written in PHP for those who can… Sep 24, 2014 clean up Apr 8, 2013
style.css Force transparency on ACE numbering Sep 11, 2016
underscore.js 0.009: .scad support via openscad-openjscad-translator, and .stl (asc… Mar 20, 2013

Version 0.5.2 (ALPHA) is a more up-to-date OpenJsCAD frontend where you can edit .jscad files either locally or online via JS editor (built-in). A few functions are available to make the transition from OpenSCAD to OpenJSCAD easier (OpenSCAD.jscad built-in), as well CLI (command-line interface) for server-side computations with NodeJS.


Immediate Use: No installation, go to (Google Chrome, Firefox)

Local Web Use:

% git clone
% cd
% make install

and then access the files via local web-site and your web-browser.

Local CLI Use:

For CLI (command-line interface) rendering install NodeJS as well, e.g. apt-get install nodejs (be aware NodeJS > 0.8.1 or newer is required) and then test it:

% cd examples/
% openjscad example005.jscad                         # -- creates example005.stl as default
% openjscad example001.jscad -o test.stl
% openjscad example001.scad -o example001scad.jscad  # -- convert .scad into .jscad
% openjscad frog.stl -o test.jscad                   # -- convert .stl into .jscad
% openjscad logo.jscad -of amf                       # -- convert logo.jscad into logo.amf

Note: on some systems the NodeJS executable is node (default) or nodejs, edit openjscad first line to reflect this.


  • 2016/10/01: 0.5.2: updated documentation links by Z3 Dev, updated Ace editor to 1.2.4, fixed AMF export to set colors only when provided, enhanced Processor constructor to support Viewer options, added big.html to provide an example of using Processor and Viewer options, enhanced Processor to retain multiple returned objects, fixed difference() and intersection() functions for CAG by fischman
  • 2016/06/27: 0.5.1: refactored AMF import and export, enhanced STL import by adding support for MM colors by Z3 Dev,added local storage by Robert Starkey
  • 2016/05/01: 0.5.0: added SVG import and export, added options to Processor and View classes, allow more flexibility in HTML by Z3 Dev
  • 2016/02/25: 0.4.0: refactored, functionality split up into more files, mostly done by Z3 Dev
  • 2015/10/23: 0.3.1: including new parameter options by Z3 Dev
  • 2015/07/02: 0.3.0: format.js (Stefan Baumann), and Blob.js/openjscad improved by Z3 Dev
  • 2015/05/20: 0.2.4: renumbering, latest csg.js from adapted
  • 2015/04/08: 0.024: dev branch opened
  • 2015/02/14: 0.023: bumping version based on openscad.js
  • 2015/02/04; 0.020: browser window resizing done properly, thanks to Z3 devs via pull request
  • 2015/01/07: 0.019: various pull requests from github merged again
  • 2014/10/05: 0.018: various pull requests from github merged
  • 2013/04/11: 0.017: alpha channel supported in color() and .setColor()
  • 2013/04/07: 0.016: csg.js: solidFromSlices() and .setColor() on polygon level, and examples by Eduard Bespalov
  • 2013/04/05: 0.015: rudimentary AMF export and import, web and cli
  • 2013/04/03: 0.014: multiple files via drag & drop, developing locally
  • 2013/04/01: 0.013: include() on web-online & drag & drop (but not off-line) and cli (server-side)
  • 2013/03/20: 0.012: improved UI (slider from the left)
  • 2013/03/28: 0.011: added support for rectangular_extrude(), rotate_extrude() and torus()
  • 2013/03/22: 0.010: leave .scad file intact, and translate on-the-fly
  • 2013/03/20: 0.009: OpenSCAD .scad syntax support included via openscad-openjscad-translator module, on web and cli; and experimental .stl import support (binary & ascii)
  • 2013/03/15: 0.008: circle(), square(), polygon() partially and linear_extrude() implemented (openscad-like)
  • 2013/03/14: 0.007: integrating jQuery for new features; draggable hint window
  • 2013/03/12: 0.006: included examples available in the web-frontend direct
  • 2013/03/12: 0.005: supporting webgui parameters as of original OpenJsCad (see examples/example030.jscad)
  • 2013/03/11: 0.004: openscad.js: many improvements, more OpenSCAD-like functions
  • 2013/03/10: 0.003: solidify the functionality (few bug fixes)
  • 2013/03/10: 0.001: initial version

See for more details G+ Announcements and G+ OpenJSCAD Community to discuss with other user and developers.


  • 3d primitive: torus() (done)
  • OpenSCAD .scad support for both Web-GUI and CLI (done)
  • include() for Web-GUI and CLI to include libraries and modules, support of multiple .jscad drag & drop with include() (done)
  • save from built-in editor to local (done)
  • complete 2D primitives and transformations (done)
  • implementation of linear_extrude() rotate_extrude(), parameter compatible to OpenSCAD (done)
  • example of platonic solids (in progress, requires include()) (done)
  • simple 2D/3D text (done)
  • 2d operation: hull() (done)
  • processing/progress bar (0..100%), perhaps even visual progress seen in the model direct
  • STL importer (done) & AMF importer / exporter
  • integration into RepRap Cloud as first stage of the workflow



Simple JSCAD example (example000.jscad):

More sophisticated JSCAD example, fully object-oriented (OO) programmed with interactive parameters (example031.jscad):

Import of STL models:

Drag & drop a local file:

Drag & drop multiple files (Chrome & Firefox) or a folder (Chrome):

See Also

  • OpenJsCAD, starting point of
  •, another place of inspiration, where the OpenSCAD translator was adapted from
  • CoffeeSCad, JavaScript simplified (no more {}), very active development
  • stl2pov tool to convert .stl to .pov, and then render via
  • P3D STL/AMF/OBJ viewer

That's all for now,

Rene K. Mueller
initial version 2013/03/10, updated 2013/04/04