News in 3d graphics software

Over the past several years, a few CAD packages developed on-line interfaces.  I'm thinking of Sketchup and TinkerCAD.   

Sketchup has historically been oriented more towards architechture and home layout.  TinkerCAD was intended as a baby version of AutoCAD, I imagine as something of a "gateway drug" to an expensive AutoCAD purchase. 

I had found both interfaces to be frustrating to use.  That said, I am not the target audience of either software package.  Sketching a regular tetrahedron in either package was far more work than one would hope. 

But things have changed.  TinkerCAD recently added a Scratch interface to its on-line package.  Scratch is a simple visual programming language, in many ways analogous to the BASIC language from the 1980s.  I found out about Scratch last summer, when my 9-year-old son showed me a video game he wrote in the language. 

TinkerCAD's Scratch interface is distinct from its regular interface, and called "Codeblocks".  Codeblocks is a one-way interface, when you code in one window pane, hit an "execute" button, then watch your code be rendered in a distinct pane.  It has a lag built-in to its rendering process, so you can keep track of which element of your code is resulting in various results in the visual pane. 

As an experiment, this morning I tried to implement a Poincare Duality visual aid I've used several times before. 

Overall, I am pleased with the outcome.  

Codeblocks has some major shortcomings but by-and-large it is usable.  For example, one of the most common problems I had with Codeblocks is the need to rotate objects around various (non-coordinate) axis, by a variety of angles. Or to place a triangle or quadrilateral, ideally by specifying the vertices. Codeblocks does not make these tasks easy.  Rotations need to be done about the Cartesian coordinate axis.  So while I generate code in Codeblocks, I usually have a Python session open in another window, equipped with some code that can rapidly convert a rotation about an arbitrary axis into Euler angles. 

Ultimately this exercise was for another purpose.  I recently acquired a 3d printer and was looking for a simple print to test the printer's capabilities. 

I will update this post in a day or two, once the print is ready. 

Edit: Although TinkerCAD is quite nice I have migraded to using OpenSCAD.  OpenSCAD is similar to TinkerCAD but it is more full-featured. It has a much more substantial programming language under the hood.  The only defect I can point to is it could benefit from more substantial multi-threading.  I will write an OpenSCAD article in the near future.