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


PUPPI version 03.10 image



Version 03.10 of the Parametric Universal Programming and Process Interface is now available to download from the Get PUPPI menu. Don't forget to request a license first if you are a new PUPPI developer. Students get to use PUPPI free, request an educational license here with a valid .edu email.

This release makes PUPPI a Turing Complete programming language! Now PUPPI users can run loops and perform iterative optimization in a visual environment. The code implemented behind these feature also opens up all kinds of exciting possibilities for future PUPPI versions.

New rendering tools have been added for creating custom nodes.

Finally, an option to "lock" the canvas has been added to the View menu. This hides certain nodes, connections and inputs and outputs and prevents edits to the visual program . In effect, your program is transformed into a GUI for non-programmers.

Please report bugs in comments, by email to This email address is being protected from spambots. You need JavaScript enabled to view it. , or use our bug tracking system


 Parametric Universal Programming Interface Scripting

PUPPI version 03.00 Released!

This is a major release with many new features. While PUPPI is still in early access, this version marks the transition of our PUPPI into adolescence. 

PUPPI v03.00 is faster, looks better than ever, and offers a robust visual programming canvas interaction API which can generate visual programs for your users at run-time, not just an empty canvas. The scripting node has been revamped and is easier to use. Container nodes can collect groups of connected nodes into a single node representation, saving valuable screen real estate and also making visual programming code snippet sharing a lot easier. Lots of bugs were fixed, of course, and many new built-in modules were added as well. Modules can now save / load their own data  when the canvas is saved to a file, which greatly increases the flexibility of the toolkit to build custom nodes and custom behaviors. The GUI offers more feedback to the user when interacting with the canvas and nodes.

All trial licenses have been extended till 10/10/2016 to allow developers to test the new features. If you have a trial license, use the PUPPI license manager to relinquish it, the re-enter the license key and you will get the extended trial. Registered users can also request a new trial license. New developers can register here.

See below for a list of the best new features in version 03.00, and read the changelog for a complete list.

  • New module: reading CSV file into grid
  • License manager now displays status of what it is doing when activating / relinquishing license
  • Added search function in Node Tree View
  • Module save/load settings to allow further customization - for instance, variable number of inputs and outputs
  • Add to / Create list module now has variable number of inputs which changes as user adds / removes input connections
  • Selecting multiple nodes and clicking on one of the selected nodes allows moving the entire selection
  • Added option to add custom commands to PUPI dropdown menus
  • Improved processing speed on user actions which cause nodes to process
  • Updated and added several PUPIGUIController API commands, giving developers more control over the PUPI Canvas operations.
  • Container nodes that can hold multiple connected modules - can create multiple levels of class object analogues
  • Improved script nodes with dll references and variable number of inputs and outputs
  • Shallow interoperability node to convert between value types and structures/classes whose fields are value type 
  • Added set input by picking a PUPIModule from a list of modules indexed in the canvas, with search capabilities.
  • Added commands to add node to the canvas by picking a module from a list of modules indexed in the canvas.
  • Added node input menu option to suggest compatible module types to generate and connect to input.
  • Added node that executes a file with arguments and returns output
  • New list to string with custom separator module
  • Added visual feedback in status text on what the mouse is hovering in, making it easier for example to connect nodes when camera far away 
  • Cleaner map view for 3D canvas

Please report bugs in comments, by email to This email address is being protected from spambots. You need JavaScript enabled to view it.  , or use our bug tracking system

Our hearts to you :)

Best wishes  for a great 2016!

Here's a parametric, data driven. Christmas tree created with the upcoming version of PUPCAD, the free parametric geometry generator.