{"id":16181310,"url":"https://github.com/kaosat-dev/coffeescad","last_synced_at":"2025-05-08T21:41:20.718Z","repository":{"id":5563766,"uuid":"6769026","full_name":"kaosat-dev/CoffeeSCad","owner":"kaosat-dev","description":"DISCONTINUED ! Browser based 3D solid CAD editor,  Openscad style, with a Coffeescript based syntax, using only Coffeescript + Javascript","archived":false,"fork":false,"pushed_at":"2017-05-12T19:16:29.000Z","size":6977,"stargazers_count":228,"open_issues_count":54,"forks_count":53,"subscribers_count":46,"default_branch":"dev","last_synced_at":"2025-02-02T03:55:46.018Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaosat-dev.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-19T23:09:15.000Z","updated_at":"2024-12-10T18:11:43.000Z","dependencies_parsed_at":"2022-07-07T02:35:07.870Z","dependency_job_id":null,"html_url":"https://github.com/kaosat-dev/CoffeeSCad","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FCoffeeSCad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FCoffeeSCad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FCoffeeSCad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaosat-dev%2FCoffeeSCad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaosat-dev","download_url":"https://codeload.github.com/kaosat-dev/CoffeeSCad/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238044095,"owners_count":19407128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T06:24:35.140Z","updated_at":"2025-02-10T02:11:49.207Z","avatar_url":"https://github.com/kaosat-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Coffeescad v0_3_preview](https://raw.github.com/kaosat-dev/CoffeeSCad/dev/coffeescad_v0.3.0_pre.png)\n\n# THIS PROJECT IS DISCONTINUED !! \n## 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)\n## it is more up to date, and has more features. (I am also an active developper of that project :)\n\nMore information about the end of the project: I stopped developing Coffeescad for multiple reasons:\n- 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\u003c=\u003ecode selection \u0026 editing (select something in the 3d view to select the code that defines it etc).\n- 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.\n- 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 \n\n\n\nCoffeeSCad\n=============\n\nBrowser based 3D solid CAD editor, Openscad style, with a Coffeescript based syntax, using only Coffeescript + Javascript\n\nFor now it is in an early experimental stage.\n\nYou can find:\n\n the **old (v0.2)** live demo here : http://kaosat-dev.github.com/CoffeeSCad/\n \n the **new (v0.3+)** live demo here http://coffeescad.net/online/ (this gets regularly updated, and is the final home of CoffeeSCad)\n\n\nFeedback, bug reports, ideas and contributions are welcome !\n\n\n\nLike CoffeeSCad ? Buy me a coffee as they say :)\n\n[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ckaos\u0026url=https://github.com/kaosat-dev/CoffeeSCad\u0026title=CoffeeSCad\u0026language=\u0026tags=github\u0026category=software)\n\n\nStatus update october 7, 2013 \n=============================\nWhile it may seem that development has slowed down, (commits in this repository), it is far from being the case:\nI am currently busy with some rather radical changes to CoffeeSCad's kernel and overall structure, \nand that is taking a bit long : on the menu :\n\nStructure\n- CoffeeSCad is going modular: ie instead of one monolithic application, it will be split up into multiple reusable \nmodules: this means that if you are a developer you could mix and match components and create additional\nfunctionality easily , or even create a custom version of CoffeeSCad that fits your needs.\n\nOn the features side:\n- support for importing geometry from a LOT of formats (stl, amf, obj etc)\n- support for including both code and geometry from different locations (local, remote via http/https)\n- moving to THREE.js library for not just visual representation\n- support for splines \u0026 bezier curves via the above mentionned lib\n- support for different types of extrusion (long overdue)\n- a cleaned up, coherent kernel, that works in the browser , in node.js and on desktop\n- LOTS of optimizations and bugfixes\n- 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\n- ground work for slicing integration\n- ground work for material definitions\n- ground work for visual to code and code to visual\n\nAnd I am surely forgetting a few things !\n\nGiven the amount of changes and improvements, this might take a bit to trickle up to the online version, \nbut I am doing my best to keep the wait short !\n\nCheers !\n\n\nImportant notes regarding browser storage:\n=========================================\n\nRecently 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\ndata is based on domain , it made them inaccessible!\n\nThe files are salvageable however! Here is how you can get your data back, even if it is a tad complicated\n- you need to find your browser's **localstorage** folder \n- for google chrome, under linux it is under **/home/USERNAME/.config/google-chrome/Local Storage** \n- find a file called \"http_kaosat-dev.github.com_0.localstorage\" (or similar) (note that it has the old github adress)\n- this is an sqlite3 database that you can open (I use http://sqlitebrowser.sourceforge.net/) \n- if you go to \"browse data\" inside the program above , there is your data :)\n\nThis is really clunky, so sorry again.\n\nIn the future it would be much better to use the (newer) version of Coffeescad at \nhttp://coffeescad.net/online/\n\nThat domain will not change so you should be safe, and the newer version also allows you to store data via dropbox as a failsafe.\n\n\n\nContributors\n=============\nDerrick Oswald\nJim Wygralak\n\n\nFeatures\n=============\n- **parametric editing** in your browser\n- **coffeescript syntax**\n- **full featured code editor**: *line counts*, syntax coloring, block folding, undo redo etc\n- a limited possibility of **\"real time\" visualisation** of the coffeescad code: type your code, watch the shapes changes!\nthis is mainly limited by the speed of your machine and the complexity of the csg objects your are working on: beyond a certain complexity\nit is not necessarly the best option.\n- **automatic bill of materials** generation with json export\n- **stl export**\n- **optional online storage** using Dropbox\n\n\nFuture Features\n===============\n- faster visualization and processing \n- desktop version\n- better ui \n\n\nDependencies \n=============\n\n\tThese are all included , no need to re-add them\n\t\n\t\n[require.js](http://requirejs.org/)\n\n[jquery](http://jquery.com/)\n\n[underscore.js](http://underscorejs.org/)\n\n[backbone.js](http://backbonejs.org/)\n\n[backbone.marionette](http://marionettejs.com/)\n\n[three.js](https://github.com/mrdoob/three.js/)\n\n[coffeescript.js](http://coffeescript.org/)\n\n[twitter bootstrap](http://twitter.github.com/bootstrap/)\n\n[codemirror](http://codemirror.net/)\n\n[jquery-ui](http://jqueryui.com/)\n\n[dropbox-js](https://github.com/dropbox/dropbox-js)\n\t\n\nQ\u0026A\n=============\n- **Q** : Why CoffeeScript based?\n\n **A** : For its clear and simple syntax , mostly: even Openscad code can get messy quite fast, so anything that\ncan get rid of a lot of curly braces etc is a good fit\n\n- **Q** : Why is it using so many librairies?\n\n **A** : I have been guilty way too many times of \"reinventing the wheel\", now I have too little time for that :) \n \n- **Q** : The code is changing a lot, can I use it right now?\n\n **A** : At this stage, this is nothing but an **early** prototype, so expect things to change , but the overall structure of the app\n is relatively stable, and I try to keep breaking changes to the scripting itself to a minimum.\n \n- **Q** : I am a developper, where is the \"meat\" of the code ?\n\n **A** In the *dev branch* , in the src folder: you have the **app** and **test** folder for the app itself and unit tests\n The app is organized in a logical and modular way: \n   - you have the application core (core folder)\n   - **editors** one folder per widget/modular sub app : code editor, visual editor etc\n   - **exporters** one folder per widget/modular sub app for file import/exports only\n   - **stores** one folder per storage type: for now dropbox and browser storage are functionnal\n \n- **Q** : Can I try CoffeeScad locally ?\n\n **A** Sure !  If you want to contribute/play around with newer versions locally\n you can use the included CakeFile : \n - after installing the depencies : type: \"npm install -d\" to Install the dependencies from the package.json file\n - on Windows rename the Cakefile.windows to Cakefile: \"ren Cakefile Cakefile.linux\" and \"ren Cakefile.windows Cakefile\"\n - you need to first at least copy the template files, just type cake cpTemplates from the root folder\n   or alternatively compile all the files and copy the templates by typing cake build from the root folder\n - just type cake serveWatch from the root folder to watch/compile the files and launch a small webserver\n - you can then go to  http://127.0.0.1:8090/ in your browser to use the dev version of CoffeeSCad\n \n \nInspiration\n=============\n- openscad \n- openjscad (coffeescad was originally based on OpenJSCad but became an independant fork along the way and is not compatible with it anymore)\n- a lot of webgl demos \u0026 tutorials\n\t- many of the Three.js demos\n\t- http://workshop.chromeexperiments.com/machines/\n\t- learning Three.js\n- a lot more stuff\n\nDisclaimer\n=============\nI am not a professionnal js/coffeescript dev. And I do this project for fun, learning, and to have an alternative to Openscad\nthat has a few features that I required for various Reprap oriented projects: (and that have been discussed a lot lately\nin the reprap community)\n - object oriented\n - better code editor (copy, paste, linenumbers etc)\n - etc ?\n\nLicence\n=============\nMIT licence\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaosat-dev%2Fcoffeescad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaosat-dev%2Fcoffeescad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaosat-dev%2Fcoffeescad/lists"}