The H3DEX library has been updated to version 1.01:


Fixed NaN bug when saving some STL files

Added function to check if three points are collinear


Get it here:

PUPPICAD Version 07.20 is now available for download to registered users.

PUPPICAD is a computational design development environment which can be easily expanded by directly loading DLL files and using their classes and functions for visual programming. PUPPICAD features over 3000 nodes and a revolutionary 3D visual programming interface.

AS always, PUPPICAD is free. Get it at

Change log:

-PUPPICAD 07.20 uses the latest version of PUPPI, 04.20

-Enabled unsafe dll loading which is able to convert a lot more dll files into visual programming modules

-Added Planar mesh construct to generate a planar mesh 3d object with all inputs satisfied.

-New module: save BMP to file

-Added MTPS module creation option


PUPPICAD planar surface

PUPPICAD 0.72 features the planar surface mesh node, which can be modified via its pointsto generate complex surfaces

PUPPI Visual Programming Applications Development Toolkit version 04.20 now available!


Many bug fixes and some nifty new features are available.

See change log below:

- Server options to not save hidden nodes and connections for faster client-server ops

- Canvas controller API commands to run the program on a timer and to stop timer.

- New Logic node: Conditional Pass,which processes downstream only if condition met.

- Long overdue: you can drag and drop node stacks on other node stacks

- New PUPPICAD.Utilities functions: get and set 3D object points

- New DataExchange module: create object from example class with property getter and setter methods

- New PUPPICAD.Utilities function : create Sphere ModelVisual3D

- Added PUPPICAD.Utilities functions to subdivide mesh by loop subdivision and also PUPPIModule to do same

- Added PUPPICAD.Utilities to make box 3d object

- New CAD module: Clone object at positions provided as Point3D list

- New CAD module: planar mesh 3d object

- New CAD module: set texture to object

- Unsafe loading in assembly creator and namespace explorer to allow more dll files to be loaded

- GUI setting variable for module menu border width

- New DataExchange module: create object from example class with fields

- PUPPIGUISettings Option for nodes to intersect and connections to cross over nodes.

- New option: generate node with properties or fields from a node's output

- New PUPPIGUISetting : set spacing between module menu items


PUPPI Nodes can be stacked after they were created

PUPPI nodes can now be stacked after they were placed on the canvas

PUPPICAD 07.10 is built with the latest PUPPI version, 04.1, and features some cool new custom modules of its own, like the gauge. You can see the gauges updating based on a timer below:


PUPPICAD clock gauge

For this version, we fixed several bugs and small annoyances. We improved server performance, and added more canvas and runtime control nodes which allow PUPPI applications to be used for graphical process control and monitoring!

PUPPI Canvas rendered on webpage

PUPPI Canvas Rendered on Interactive Webpage

(Javascript based web client available to Developer level PUPPI subscribers)


Full list of changes:

- Node move arrow now sizes based on camera height

- TCP server performance improvements

-  New custom renderer element: filled Triangle (both 2D and 3D)

-  New GUI setting for controlling quality of cylinders and circles in custom renderers

- New Logic module: start/stop timer that allows the program to run every x milliseconds

- New collections module: accumulator that adds input to a list every time module processes,up to a specified limit

- New CAD module: hardcode transforms to 3D model points

- New logic module: force graphica update of canvas, useful to see what is going on when the program runs in a loop 


Looks like a horror movie :)

The CAD Astronaut

PUPPICAD version 07.00 is available to download free (free user registration required).

Built with the new PUPPI 04.00 library, it features all its  improvements (see article below).

In addition, we revamped the Options menu to set up a client server interface. You can run one instance of PUPPICAD in server mode, and connect to it from a client instance, retrieve and send data to nodes, and run programs.

There are many more example visual workflows, including one for the new 3D object slice module, great for prepping large CAD models for 3D printing:

PUPPICAD 07 CAD model slice example

Full list of improvements (not counting PUPPI improvements, see article below for those):


-Added options menu

-Added integer slider control

- Bigger module buttons

- When locking canvas, menu buttons disappear

- Image display from file node

- File browser module, outputs path

- Server that can serve node outputs to other PUPPICAD instances, set up from the options menu

-Added list of plugin files to the options menu



Version 04.00 of PUPPI now available for download to registered users.

Lots of bug fixes and new features available. This is a big one! Thanks everyone who volunteered feedback!

Most important addition is the client-server interface , about which there will more material posted on the website in the coming weeks. Basically, you can now control and render a PUPPI visual programming canvas canvas from anywhere, be it another program on another computer, or even a web page. Server commands are issued via text statements, and the text command interface is available to control from  the canvas API or even from inside module processing functions. We will be showing off some pretty meta stuff in the near future :)

We added lots of CAD modules and CAD utility functions. The most fun is the model slicer, which can split a large 3D object into smaller chunks for 3D printing.

Various graphical and usability  improvements were added, such as immediate feedback functions that can override a node's graphical response to user dragging over. You can see that in the new behavior of sliders in the latest version of PUPPICAD, 0.70.

visual programming slider

If you haven't already, please register and request a trial licence. We want everyone to test out these new features, so you can request a new license if your current trial is about to expire or already expired.

 Full list of improvements below:

- Font can be set for node captions and menu buttons

- New optional node / input / output large semitransparent hover info display

- New collections modules: get first item and get last item

- Smoother connections

- Faster paste

- Node menu option to clone stack to make things faster

- New collection module: get item index

-New CAD module: get bounding box list of points

- New CAD module: get Model normal based on specifying point - early version just using positions, no interpolation

-  New CAD module: get nearest point on Model -early version just using positions, no interpolation

-  New CAD module:wireframe display of mesh-based models

- Added new utility function: offset sketch

- Added new utility function: rotate sketch

- Added new utility function: translate sketch

- Added new utility function: convert spline to polyline

- Added new utility functions: polyline trim start and end, get point ratio on polyline by index

- Added new utility functions: rotate vector3d, point3d and polyline3d

- Added new utility functions: translate Polyline3D and offset Polyline3d

- Added new utility functions: convert Sketch2D to Polyline3D

- Added new utility functions:get normal of three points in 3D

- New menu command: change tooltip of an item already in the menu, so that modules generated from functions can get custom tooltips

- Open and save canvas configurable keyboard shortcuts added

- New PUPPIPolyline functions: find nearest point on polyline, trim polyline by point

- New CAD module: create surface cap based on polyline and direction vector

- New CAD module: reset transform 

- New CAD module: align object to vectors and position using transforms

- New Polyline function: project polyline on plane

- Canvas GUI controller now accessible from within module processing function, allowing for a lot of program self generation using script commands

- New CAD module: display Plane on CAD Window as rectangle

- New CAD module: project polyline on 3D model

- New CAD module: slice model

- New data input module: list of strings based on counter and optional prefix and suffix

- New custom renderer element: rounded box

- New module: connect to canvas server and issue command, retrieve result.

- New module: connect to canvas server and retrieve node output.

- Set culture to en_US for now

- New CAD model: calculate 3D model area

-New client-server module: run program on server

- New logic module: join two program branches

- New logic module: halt execution of program for specified milliseconds

- New drag over node overridable module function allows for realtime update of node appearance as gestures are performed over node.

- New module: set node output on remote canvas



 Using PUPPICAD to generate structural elements on an arbitrary 3D shape

Structural elements generated from arbitrary surface  in PUPPICAD 0.61 example

It's here!

After a year, a new release of the free computational design tool PUPPICAD. 

PUPPICAD 0.61 uses the latest PUPPI library, 0.3.21.

Almost 4000 modules available, with new advanced computational geometry modules added  such as splines, contour cutting and convex hull generation.

The full Windows Media3D namespace and the Helix 3D Toolkit have been converted into visual programming modules, so that you can do pretty much anything you can imagine.

New mathematical modules for expression evaluation and matrix algebra are also available.

Lots of example programs, and a quick-build menu for common geometry objects make it easier then ever to get started.

You can also generate visual programming modules on the fly from .NET DLL files.

Find out more and download PUPPICAD from here.


PUPPI Visual Programming Applications Toolkit Version 03.21 is now available. Get it while it's hot! Lots of improvements:

-Many new modules for processing lists and collections

-Many new CAD modules and functions that can be converted into modules

-Speed improvements

-Split node stack menu option for 3D canvases

-Improved visual feedback for moving and connecting nodes