Until recently, computer-aided design (CAD) software was really only used by engineering companies who could afford to pay thousands of dollars a year per license. The available software, while very powerful, had a very high learning curve and took a lot of training and experience to master. But, with the rise of hobbyist 3D printing, a number of much more simple CAD programs became available.
While these programs certainly helped makers get into 3D modeling, most had serious limitations. Only a few have been truly open-source, and even fewer have been both open-source and parametric. Parametric CAD allows you to create 3D models based on a series of parameters, such as defining a cube by its origin and dimensions. This is in contrast to sculpting style 3D modeling software, which is controlled much more visually. The benefit of parametric modeling is that parameters can be changed later, and the model can be updated on the fly. Features can also be defined mathematically, so that they change in relation to each other.
While still in its infancy, JS.Sketcher is seeking to fill that niche. It is 100% open-source, runs in your browser using only JavaScript, and is fully parametric (with both constraints and editable dimensions). At this time, available features are still pretty limited and simple. You can: extrude/cut, revolve, shell, and do boolean operations with solids. More advanced features aren’t available yet, but hopefully will be added in the future.
If you’re looking for a parametric open-source CAD program that can run in your browser, this is it. It’s far enough along that you can use it for real-world (albeit simple) modeling. CAD does, however, still require a certain type of spatial thinking and reasoning. So, if you’re new to the 3D modeling world, it might be worth tinkering with a more learning-oriented tool like BlocksCAD.
[thanks to mmiscool for the tip!]
Not joking when I say this. Finally, been looking for this everywhere. Was even tempted to script some functionality into Blender.
Have you tried FreeCAD? Plenty powerful, and easy enough to use. And I’d guess it’ll be tonnes faster than running something in your browser..
Check out OpenSCAD if you haven’t already too, an amazing tool to have.
Would have been useful to compare it to the other parametric browser-based tool out there, OpenJSCAD – which has been around for quite a while and is reasonably mature.
And a link, for my fellow lazies: http://openjscad.org
The docs are pretty good too: https://en.wikibooks.org/wiki/OpenJSCAD_User_Guide
My kids use openscad on my Ubuntu laptop when I am around and not using it; is a R-Pi 3(their computer) powerful enough to run it? Unfortunately there is not a working build of either Openscad not full Arduino IDE for the R-Pi.
OpenSCAD probably wouldn’t be too difficult to compile for RPi, but you wouldn’t want to run it there. The moment you start rendering the final shape it can take long seconds to calculate even on a powerful i7. On RPi it would likely take days.
Might be enough for a F5 quick-look to make a good looking object or catch obvious flaws and then actually compile the scad code and export to stl on a real computer.
There is a full Arduino IDE for Raspberry Pi, it’s the Linux ARM version:
https://www.arduino.cc/download_handler.php?f=/arduino-1.8.0-linuxarm.tar.xz
Not sure. I haven’t tried.
Note that OpenSCAD and OpenJSCAD are different – although I believe there’s some shared code that led to the similar names?
OpenSCAD is a traditional application, OpenJSCAD is browser-based.
I have used both, but in the context of this article I was referring to the latter browser-based version. :)
Openscad is in the repo that I use on raspbian on my Pi… (deb http://archive.raspbian.org/raspbian jessie main main contrib non-free rpi) …. sudo apt-get install openscad ;)
i was looking the tip. thanks for sharing. i am here
Though not in the web browser, there is open source parametric CAD, http://c-csg.com
And if you don’t mind very slow and buggy software, OpenSCAD.
I’ve been learning OpenSCAD this past week – I’ve not found it too bad, although I’ve encountered some of the bugs you mentioned already. C-CSG looks pretty impressive – is it more reliable/performant than OpenSCAD?
A “learning curve” can be steep rather than high.
Yes; in parametric terms, the steepness of the curve is more important.
Might be good to ad a link in the article to the demo thats up and running at http://web-cad.org
why the hell i should use a CAD-in-browser? it cost on overload by browser itself, an all other constraints. better go with a installed program to optimize speed as soon as my model became big. parametric and open source coded CADs are already available, give a look to FreeCAD or OpensCAD. please give up with this stupid trend “i-run-everything-in-browser”!
instant accessability and platform independence are the most powerfull arguments. shure this isnt the powerhouse for cad, but it fills a niche I have in my medium size manufacturing company. However, a browserbased DXF-editor would be soooo much more usefull!
I would even go so far that there is a lot of willing to pay companys for such a softwaretool as it allows me to use older PCs or notebooks in the production line. they may not get much older there because of all the metal dust, but who cares if i can just plug in another one, browse to a website and can go on with my work.
dxf files can be exported from the 2d sketcher in this one. No import though.
Personally I think this is awesome. I’ve only had my girlfriend’s laptop with me over the Christmas break and it doesn’t have any of my usual software installed on it. I need a method to convert log files from my teensy to CSVs, so I though f***-it, I’ll give JavaScript a go. Surprisingly powerful! I am used to using MATLAB, but I have found Plot.Ly to be equally as flexible. I say bring on the JavaScript, all you need a browser, I think that’s pretty fantastic :)
Ps Merry Christmas everyone
I have encountered this in a world of buggy, wierdware laden, MS-pain. Just load your favorite OS onto a big USB flash drive and use that to boot. Between that and my old Maemo smartphone I have enough capacity to work and play nearly as normal. I usualy pick Lubuntu so as long as it is amd64 I can boot damn near any laptop from the last few years and have it moving at high speed in a useful OS with the packages I need.
For an alternative to Matlab in your browser, have a look at https://calerga.com/SQjs
amazed that there was no mention/reference to FreeCAD..
Onshape – is a full fledged parametric CAD in your browser.
thankyou! Onshape is great, made by ppl who made soliworks, better than solidworks IMO (or getting there)
And Onshape runs on a tablet with the downloaded app
From last year: http://hackaday.com/2015/09/03/learn-3d-modeling-in-your-browser/
Note that 3DTin just shut down the other day, I heard. Shapesmith gets no love, for some reason. OnShape is amazing, but another steep curve. Lots of tutorials though.
Yes, this is where I found out about it. They have improved greatly since that time. And as for learning curve, after that you will be able to work almost in every major big CAD software – that’s good I guess.
This is fantastic… And also one of the few HAD posts with all positive comments :)
Is there an open source/free CAD software package that supports assemblies with constraints? For example, I have multiple parts and I want to join them together in order to make a complete “product”. I know FreeCAD has an inofficial “Assembly2” workbench, but even it is super buggy and recently no longer developed. The official assembly workbench is nowhere in sight, as well. Anyone know of anything? It is one of the issues that forces me to continue using mega expensive commercial CAD software :/
Onshape does exactly that with variable mate connectors.
Onshape is free if you are a hobbyist modeller – all projects are public in the free version.
This may shock you but….I’ve been doing parametric CAD design for years using an excel spreadsheet, and small set of macros that convert the cell contents to corresponding lines in a file that OPENSCAD opens automatically. The ability to put formulae into excel cells allow for a rapid scaling and, using a hierachial approach with modules, design of components and assemblies. Throw in the animation variable $t and I can quickly create animations of the designs and printable STL files.
would you mind sharing one of those spreadsheet?
Not sure about the best way to share the spreadsheet file. Suggestions?
Please, stop telling people to make sketches on faces. Please
Why do you not like faces?
I love faces. Just not sketches on them.
Sketches are for planes. You can make planes from sketches.
When you sketch on faces, you open up a pandora’s box of please-break-my-model-whenever-I-change-anything. You cascade problems all the way down; change the angle on a face slightly? everything breaks. add an edge? everything breaks.
Of course, this is just my opinion, but a well-made document model should have a form that follows rules closer to: sketches and planes first, operations to generate and manipulate solids after – with no sketches, planes, points, or any other 2d primitives after the first solid is created. This way, when you inevitably have to change something, you won’t have to axe your entire model, but may have a couple of operations that must be repaired.
Now, for the love of FSM, please, stop sketching on faces.
But that mostly occurs with history-based modeling. Newer, more direct-modeling-oriented interfaces are unaffected by sketching on faces vs planes. In fact, I just started using the Orchard platform, and in the interface, you can even move and rotate sketches like objects, even after sketching on a face (https://3DOrchard.com). It’s a bit different to get used to, but works well once you do!
Of cource you could sketch on a plane but you would fail to get the reference geometry from the underlying surface/face.
In nx you can sketch directly on a face. In the background it creates a plane that is linked to the face that the sketch resides on but these are trivial details that most people don’t have to deal with.
I can’t reply to every post that mention OpenScad here but it is worth pointing out that the software presented here is essentially different. OpenScad is very useful but feels like cad from the 80s (being generous). This Sketcher, like Freecad, Solvespace or the commercial “equivalents” Solidworks, Inventor, etc.. they allow to define shapes based on constraints, which inherently makes the models dynamic and very simple to build. It takes hours of work to make a very simple solid model using Openscad while it would take minutes to make it with the aforementioned software.
i agree openscad is perfect for thingiverse and general household objects but unless you’re design need is inherently programmatic, i.e math generated, most times you will save time by using something like solidworks/onshape using constraints/variables/equations especially if it’s complex and especially especially if you want to easily fillet any edge quickly just to see how it looks.. without having to code boolean operations for single fillets or spend time looking for a library and trawling through code… which might be fun but i just want to focus on designing my model and not worry about anything i don’t have to
I’ve been looking at “Designspark PCB” by RS Components after seeing it mentioned on Hackaday. Like what I see so far.
https://www.rs-online.com/designspark/pcb-software
I previously used Solidworks, then Onshape, but I recently made the switch to Orchard (https://3DOrchard.com). It’s a free platform for crowdsourced design and runs in the browser. I like it because of how quickly I can jump in and start modeling or editing designs, and how quickly the interface was to learn (although, my previous CAD experience helped). The interface is slightly different than I was used to, but slick once you get the hang of it. Tools become available based on what’s selected (rather than in your face all the time). The only potential drawback is it requires chrome (but I use chrome so it’s np for me): https://3DOrchard.com
:sigh: I wish that someone could figure out how to compile a native Windows build of Antimony. ( http://www.mattkeeter.com/projects/antimony/3 ) If any of you are up for it, there is even a bit of money in it for you. ( https://www.bountysource.com/issues/20680913-native-windows-build )
(For those of you who haven’t heard of it, there is a pretty good explanation at Matt’s site. Two things that aren’t mentioned for some inexplicable reason, though is A) Every field in a component can be filled either with a value or a Python formula, and B) Every field in every component can be referenced with component.field!