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.


This update fixes a few bugs and adds a couple of nifty features:


- Streamline 3D CAD access node to accept Model3D objects directly

- Fixed area selection lag update

- Module Menus with empty string for title now show no title.

- Fixed user license reading bug.

- Option now to connect nodes by double clicking on outputs then multiple inputs 

Registered users can now download version 02.22 of the PUPI Visual Programming Applications Toolkit from the Get PUPI download submenu.

From the changelog:

Version 02.22

-Fixed some connections being displaced and not reaching input

-Added List Find modules, find by propety value and object type (useful in lists of generics)

-Added public API command to add node to canvas programmatically

-Added setting to allow node to be added on center of canvas by double clicking on module in menu

-Major speed-up in loading/undo/redo

-Fixed camera pan being  slow whend dragging up/down in 2d

-Added status (loading,file name, new canvas) which is displayed on canvas and can be disabled from the settings

-Fixed issues with some enumeration types not showing up.

-Added If statement node 


Registered users can now download version 02.20 of the PUPI Visual Programming Applications Toolkit from the Get PUPI download submenu.

From the changelog:

-Improved automatic PUPI visual programming module generation from .NET libraries

-Added public events that can be intercepted by developers for new visual programmingcanvas, load canvas and import canvas

-Added customizable keybord shortcuts for node deletion, copy/paste

-Small fixes on connection drawing

A couple of reported bugs were fixed:

-Fixed connections getting displaced at some inputs

-Fixed parameterless constructors

And two new list processing modules added:

- Added more list modules - list to typed list, typed list to array



PUPI and PUPICAD downloads unavailable while we fix some bugs. Please check back tomorrow.

The biggest update is a set of tools that allows PUPI to generate Grasshopper modules from .NET code. 

This is an automated and codeless solution. You can see the procedure in the video below:

List of changes:

  •  Option to curve connections at corners
  •  Option for wire connections
  •  Grid thickness and material can now be set
  •  Automatic arrangement command in View menu, rearranges nodes based on connections
  •  Menu command to regenerate connections
  •  Export PUPI Module DLLs from MTPS function added to PUPIModel
  •  On screen pan buttons also work as look buttons in 3D
  •  Experimental PUPI Assembly Creator tool to create PUPI DLLs from MTPS
  •  Experimental PUPI Grasshopper Assembly creator from PUPI Module DLLs

And there is another video showing the look and feel of the updated programming canvas:


I submitted the false positives to multiple anti-virus vendors and it looks like most of them cleared it.

If the PUPI installer gets quarantined by Windows as a file that is not commonly downloaded , when you try to run it, click on More Info and choose Run Anyway