Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

OpenJsCad: like OpenSCAD, but using JavaScript

by joostn, published

OpenJsCad: like OpenSCAD, but using JavaScript by joostn Jan 20, 2012
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

10043Views 457Downloads


Not sure how to announce this other than by uploading a 'thing'. So here is one.

Enthousiastic about OpenSCAD but somewhat frustrated by the limitations of its language, I've worked on an alternative using Javascript. It's free, completely open source, still seriously under construction, based on Evan Wallace's CSG.js library and can be used in a web browser,

See: http://joostn.github.com/OpenJsCad/

The benefits over openSCAD are mainly in the language itself: you can use dynamic arrays for example, and solids can be stored in variables.

UPDATE: I've added a parser for local files as well. Create your own .jscad files, go to

http://joostn.github.com/OpenJsCad/processfile.html to parse them into an STL file.

UPDATE 2: Here's my first real thing designed with OpenJsCad:


UPDATE 3: Now with interactive parameter editing! Check out:


Syntax has been changed slightly! Solids must now be constructed in, and returned from, the main() function. Previously this was done in global scope of the script.

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Loving it man! great job!

Ooh, if it works inside Chrome I might be able to use this at work. Since I can't actually install anything to my computer.

Working awesomely in Safari!

When I save a local copy of the webpage some things break, is making this tool an offline thing something you are planning to do?

By the way the new parser (http://joostn.github.com/OpenJsCad/processfile.html)joostn.github.com/OpenJsCad/pr... must be run from a http URL, Chrome has security restrictions in place which disallow access to uploaded files from a page with a 'file:' url.

But it should work if you have a local http server on your machine. Or perhaps it works in safari

The Three.js docs cover loading local files when opening a page with a file:// URI: https://github.com/mrdoob/three.js/wiki/How-to-run-things-locallyhttps://github.com/mrdoob/thre...

It boils down to starting Chrome with the --allow-file-access-from-files option. Still looking for info on why this is considered harmful; the user's telling the browser which file to load, not granting access to the filesystem.

It should work fine, nothing is done on the server.

You can download the zipball here:

Not all firefoxes are born equal. Mine shows nothing.

Opera shows nothing too.

Your browser needs to support WebGL, otherwise you'll see nothing. I'll update it with a proper error message.

Works fine in firefox.

Not all firefoxes are born equal. Mine shows nothing.

Opera shows nothing too.

On Linux.

Yes it mostly seems to work but I have seen occasional corrupted solids. Haven't been able to figure out what causes this.

But chrome's javascript is faster anyway!