• Stars
    star
    226
  • Rank 176,514 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 12 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DISCONTINUED ! Browser based 3D solid CAD editor, Openscad style, with a Coffeescript based syntax, using only Coffeescript + Javascript

Coffeescad v0_3_preview

THIS PROJECT IS DISCONTINUED !!

While I still love the Coffeescript syntax, I only use ES6/ES2015 these days. If you want an up to date, open source browser based cad, please try OpenJSCAD (https://github.com/jscad)

it is more up to date, and has more features. (I am also an active developper of that project :)

More information about the end of the project: I stopped developing Coffeescad for multiple reasons:

  • when I hit the limitations of Coffeescript vs Javascript when dealing with code tracing, analysis and generation with tools like Esprima, Estraverse, etc: This was going to be used to allow visual<=>code selection & editing (select something in the 3d view to select the code that defines it etc).
  • I have come to dislike 'Object oriented' code more and more over the past few years, leaning more and more towards simple functions, and all the fantastic possibilities AND simplicity of 'functional' programming.
  • Coffeescad was my first serious 'web' based project, things have evolved a lot in the past few years, and so has my knowledge, I would not have made the same choices today

CoffeeSCad

Browser based 3D solid CAD editor, Openscad style, with a Coffeescript based syntax, using only Coffeescript + Javascript

For now it is in an early experimental stage.

You can find:

the old (v0.2) live demo here : http://kaosat-dev.github.com/CoffeeSCad/

the new (v0.3+) live demo here http://coffeescad.net/online/ (this gets regularly updated, and is the final home of CoffeeSCad)

Feedback, bug reports, ideas and contributions are welcome !

Like CoffeeSCad ? Buy me a coffee as they say :)

Flattr this git repo

Status update october 7, 2013

While it may seem that development has slowed down, (commits in this repository), it is far from being the case: I am currently busy with some rather radical changes to CoffeeSCad's kernel and overall structure, and that is taking a bit long : on the menu :

Structure

  • CoffeeSCad is going modular: ie instead of one monolithic application, it will be split up into multiple reusable modules: this means that if you are a developer you could mix and match components and create additional functionality easily , or even create a custom version of CoffeeSCad that fits your needs.

On the features side:

  • support for importing geometry from a LOT of formats (stl, amf, obj etc)
  • support for including both code and geometry from different locations (local, remote via http/https)
  • moving to THREE.js library for not just visual representation
  • support for splines & bezier curves via the above mentionned lib
  • support for different types of extrusion (long overdue)
  • a cleaned up, coherent kernel, that works in the browser , in node.js and on desktop
  • LOTS of optimizations and bugfixes
  • a lot coherent module system (modules are the files containing the code): this not only concerns how things are done internally, but also error reporting, "include" statements etc
  • ground work for slicing integration
  • ground work for material definitions
  • ground work for visual to code and code to visual

And I am surely forgetting a few things !

Given the amount of changes and improvements, this might take a bit to trickle up to the online version, but I am doing my best to keep the wait short !

Cheers !

Important notes regarding browser storage:

Recently github changed their pages domain to ".io" instead of ".com" (https://github.com/blog/1452-new-github-pages-domain-github-io), and since the localstorage system used to store CoffeeSCad's data is based on domain , it made them inaccessible!

The files are salvageable however! Here is how you can get your data back, even if it is a tad complicated

  • you need to find your browser's localstorage folder
  • for google chrome, under linux it is under /home/USERNAME/.config/google-chrome/Local Storage
  • find a file called "http_kaosat-dev.github.com_0.localstorage" (or similar) (note that it has the old github adress)
  • this is an sqlite3 database that you can open (I use http://sqlitebrowser.sourceforge.net/)
  • if you go to "browse data" inside the program above , there is your data :)

This is really clunky, so sorry again.

In the future it would be much better to use the (newer) version of Coffeescad at http://coffeescad.net/online/

That domain will not change so you should be safe, and the newer version also allows you to store data via dropbox as a failsafe.

Contributors

Derrick Oswald Jim Wygralak

Features

  • parametric editing in your browser
  • coffeescript syntax
  • full featured code editor: line counts, syntax coloring, block folding, undo redo etc
  • a limited possibility of "real time" visualisation of the coffeescad code: type your code, watch the shapes changes! this is mainly limited by the speed of your machine and the complexity of the csg objects your are working on: beyond a certain complexity it is not necessarly the best option.
  • automatic bill of materials generation with json export
  • stl export
  • optional online storage using Dropbox

Future Features

  • faster visualization and processing
  • desktop version
  • better ui

Dependencies

These are all included , no need to re-add them

require.js

jquery

underscore.js

backbone.js

backbone.marionette

three.js

coffeescript.js

twitter bootstrap

codemirror

jquery-ui

dropbox-js

Q&A

  • Q : Why CoffeeScript based?

A : For its clear and simple syntax , mostly: even Openscad code can get messy quite fast, so anything that can get rid of a lot of curly braces etc is a good fit

  • Q : Why is it using so many librairies?

A : I have been guilty way too many times of "reinventing the wheel", now I have too little time for that :)

  • Q : The code is changing a lot, can I use it right now?

A : At this stage, this is nothing but an early prototype, so expect things to change , but the overall structure of the app is relatively stable, and I try to keep breaking changes to the scripting itself to a minimum.

  • Q : I am a developper, where is the "meat" of the code ?

A In the dev branch , in the src folder: you have the app and test folder for the app itself and unit tests The app is organized in a logical and modular way:

  • you have the application core (core folder)

  • editors one folder per widget/modular sub app : code editor, visual editor etc

  • exporters one folder per widget/modular sub app for file import/exports only

  • stores one folder per storage type: for now dropbox and browser storage are functionnal

  • Q : Can I try CoffeeScad locally ?

A Sure ! If you want to contribute/play around with newer versions locally you can use the included CakeFile :

  • after installing the depencies : type: "npm install -d" to Install the dependencies from the package.json file
  • on Windows rename the Cakefile.windows to Cakefile: "ren Cakefile Cakefile.linux" and "ren Cakefile.windows Cakefile"
  • you need to first at least copy the template files, just type cake cpTemplates from the root folder or alternatively compile all the files and copy the templates by typing cake build from the root folder
  • just type cake serveWatch from the root folder to watch/compile the files and launch a small webserver
  • you can then go to http://127.0.0.1:8090/ in your browser to use the dev version of CoffeeSCad

Inspiration

  • openscad
  • openjscad (coffeescad was originally based on OpenJSCad but became an independant fork along the way and is not compatible with it anymore)
  • a lot of webgl demos & tutorials
  • a lot more stuff

Disclaimer

I am not a professionnal js/coffeescript dev. And I do this project for fun, learning, and to have an alternative to Openscad that has a few features that I required for various Reprap oriented projects: (and that have been discussed a lot lately in the reprap community)

  • object oriented
  • better code editor (copy, paste, linenumbers etc)
  • etc ?

Licence

MIT licence

More Repositories

1

Blenvy

Bevy Code & Blender addon for a simple workflow to add & edit Bevy components in Blender
Python
443
star
2

polymer-threejs

Experimental Three.js elements using the Polymer framework + three.js
JavaScript
27
star
3

adafruit-i2c-pwm-driver

Node.js implementation for the Adafruit 16-Channel 12-bit PWM/Servo Driver
JavaScript
25
star
4

bevy-fun-examples

A few "fun" examples for the Bevy engine !
WGSL
23
star
5

awesome-quickjs

A curated list of awesome things related to QuickJS
22
star
6

bevy_mod_yarn

Rust
19
star
7

Doboz-web

Doboz: Web client and server for reprap/repstrap/3d scanner control
JavaScript
15
star
8

most-gestures

unified desktop/mobile high level pointer gestures, using most.js
JavaScript
12
star
9

socket-io

socket.io web component (polymer)
HTML
12
star
10

grunt-polymer-nodewebkit-example

Example polymer/node-webkit/grunt project
CoffeeScript
11
star
11

Doboz-2

All files, instructions and information for the Doboz 2 H-bot reprap
OpenSCAD
8
star
12

grunt-polymer-atomshell-example

Demo project/utility using grunt to build polymer + atom-shell apps
CoffeeScript
7
star
13

polymer-elements

JavaScript
5
star
14

Isolos

3d printable quadruped robot designed in JSCAD
JavaScript
4
star
15

CuraEngine-js

Experimental attempt at porting CuraEngine to javascript using Emscripten
JavaScript
4
star
16

HydroDuino

Remote monitoring and control for Hydroponics Aquariums etc using python, arduino etc
4
star
17

simple-scan

C++
3
star
18

Backbone.dropbox

dropbox storage (sync) for Backbonejs
CoffeeScript
3
star
19

gofree

JavaScript
2
star
20

jscad-tree-experiments

Experiments for partial re-evaluation/ virtual trees of jscad code for significant perf improvements
JavaScript
2
star
21

polymer-threejs-databinding-demo

Demo for nested databing inside a THREE.js cssRenderer3D view
CSS
2
star
22

CoffeeSCad-examples

All sorts of example projects for CoffeeSCad : feel free to fork and make pull requests , so we can centralize as much examples as possible
CoffeeScript
2
star
23

Openscad_designs

various openscad designs, usually heavy wip
2
star
24

SMARS-jscad

Recreation of the SMARS 3D printed robot as a modular JSCAD design
JavaScript
2
star
25

node-github-autochangelog

Automatic generation of changelogs using the github api + nodejs
JavaScript
2
star
26

3DR-Tiki

3DR reprap fork using 20mm T-Slots for sides
C++
1
star
27

Rampage

JavaScript
1
star
28

Pollapli

JavaScript
1
star
29

jscad-hannoverjs

Presentation about JSCAD at HannoverJs : slides + code
JavaScript
1
star
30

repBug

Openscad design files, documentation etc for the RepBug hexapod
Python
1
star
31

threejs-amf-loader

AMF file loader for THREE.js
JavaScript
1
star
32

Web-Experiments

Various node -js / browserify /components.js etc experiments
JavaScript
1
star