Month: September 2016

Repeating According to Plan





In this tutorial, we introduce the basics or a very powerful node in Archimatix, the PlanRepeater.

Parametric Props




In this short tutorial, you will coax a living parametric model to shape shift into different forms. Archimatix ships with a library of such parametric props, ready to stamp out incarnations of themselves to use in your games.


In this tutorial (below), you will learn:

  1. How to call up parametric props from the Unity menus.
  2. How to discover and use parametric Handles associated with parts of the model.
  3. Stamp out “frozen” variations of these props.



Lathing a Skyplatform





In this two-part tutorial, you will use 2D Shapes from the Library, such as a Circle and a RoundedRectangle, merge them with a ShapeMerger and then Lathe them to form a large Skyplatform. You will reuse the merged shape to feed into an Extrude Mesher and automatically distribute this Extrude as End Caps for the Lathe.


Archimatix Begins




In this 6 minute tutorial, we start at the very beginning with an introduction to the NodeGraph Editor window and the basic creation and manipulation of parametric objects.

Basic Layout – Canvas and Sidebar Menus

Node Creation

  1. Circle
  2. Extrude

Node Linking

Parameter Editing


Introducing the Node Graph Editor


Basic Layout

Library Sidebar

Node Menu Sidebar

Node Canvas

Bottom Menubar


Basic Navigation

Click anywhere on the node canvas to pan it.

Use your scroll-wheel to zoom in and out, centered on your mouse cursor


Creating a 2D Node

Choose a Circle from the Library sidebar menu

Click on the node palette to move it.

Create a 3D Node

Click on the Output Parameter of the Circle Node (without dragging).

Move your mouse cursor to the righthand sidebar menu.

The sidebar menu has filtered the nodes so that only nodes that can receive the Circle Shape Output are displayed.

While hovering over the node sidebar menu, use your scroll wheel to scroll down to the Extrude node.

Click once on that node. The Extrude node should appear on the node canvas just to the right of the Circle.


Repositioning Nodes

Click on the node palette header bar or the thumbnail at the bottom of the palette and drag the node palette to a new position.

Move the Extrude palette to the left of the Circle palette, the connector between the two will wrap around to show that this is a directional relationship, i.e., the output of the Circle Shape “flows upstream” to the input of the Extrude node.


Adjusting the Node Thumbnail View

Mouse over the upper-righthand corner of the thumbnail at the bottom of the Extrude palette.

After a small orange sphere appears, click and drag the sphere to orbit the thumbnail view camera.

Dolly the thumbnail view in and out by holding down the ⌘ key (MacOS) or the control key (Windows) before clicking and dragging.


Transformation Parameters

Open the Transformations foldout in the Extrude’s node palette.

Click on the Trans_X parameter and slide to the left and right.

Control Parameters

Open the Controls parameters foldout on the Extrude node palette.

Click and drag the Extrude [Y] parameter. The hight of the extruded Cylinder will increase.


Node Stats

At the bottom of the Extrude node palette is a display showing the number of vertices and triangles in the output mesh.

Open the Geometry foldout on the Circle node palette.

Increase or decrease the number of segments using the segs parameter slider.

Notice the number of verts in the Circle stats display is updated, as is the mesh stats for the Extrude.

Bottom Menubar

Click the first button on the menubar at the bottom of the Node Graph Editor window. This will re-fold all the parameters foldouts that you have currently open.

Clicking on the next button, the “”Close All Tools” button, will hide any Material nodes, Tool nodes and Shape Nodes.

Clicking on the third button will show all nodes in the Graph.

Note the stats summary displayed on the right side of the bottom menubar. This is the count of vertices and triangles that your entire model will have when built.



Shape Merging



In this tutorial, we introduce the basics of combining Shapes from the 2D Library to easily create complex forms.After completing this tutorial, you will have learned:


  1. Calling up Shapes from the 2D Library
  2. Modifying Shapes with thickness settings.
  3. Combining Shapes with 2D boolean operations
  4. Extruding interlocking Shapes

Shaping Up

  1. Open the NodeGraphEditor by choosing Windows>Archimatix>NodeGraphEditor
  2. On the lefthand sidebar, scroll down until you see ArchShape. Click on this.
  3. Scroll back to the top and click on Circle.
  4. Multiselect the two nodes in the NodeGraph and from the right sidebar menu, click on ShapeMerger.
  5. The ShapeMerger node palate will show the product of the merger with the Arch as the solid and the Circle as the void.


Railing at the Model

Know Your Relations Better


Simple Relation for stacking: the Cylinder is always atop the Box.



Artful parametric modeling is all about managing relationships. Not the personal kind, but the algorithmic kind.

By defining meaningful relationships among your parameters, you can encode a new and powerful morphological genus – creating a new species DNA, as it were, that can be used to generate hundreds of variations of models.

There are two kinds of parametric relations in Archimatix: 1. inter-nodal connections, and 2. parameter expressions. In this tutorial, we will demonstrate inter-nodal connections.

When you connect parameters from different noes to each other, you are authoring behaviors for your parametric model. When you modify one parameter, all sorts of changes may ripple through the model according to the logic you encoded via Relation connections and mathematical expressions within the Relation. Furthermore, these Relations may be bi-directional, meaning that you can change a parameter anywhere in the graph and changes will ripple out from that parameter.  The default mathematical expression set  when you fist specify a Relation is equivalency, or simply “=”..

Equal Relations

A common case for an equals Relation is when you want one object to always sit atop another, regardless of how tall the bottom object is. In the example to the right, the behavior illustrated is that the blue Cylinder is always atop the red Box.

Try This!

To set up this parametric behavior:

  1. Choose a Cylinder and a Box from the 3D Library (left sidebar in the NodeGraphWindow.
  2. Unfold the Controls of the Box and the

    A simple “equals” expression.

    Transformations of the Cylinder.

  3. Click on the red connector box on the parameter Extrude in the Box node palette.
  4. Click on the red connector button next to the Trans_Y parameter on the Cylinder node palette.
  5. To test: either click on the Box in the SceneView and then drag the green knob to make the Box taller, or click on the Cylinder and then drag the Y-Axis Position Handle.

You will notice that the relation is bi-directional. Modifying either parameter will alter the related parameter. This is a departure from other parametric modelers which feature uni-directional relations. The benefit of bi-directional is that, when playing with a parametric model in the SceneView, you can click just about anywhere you like and start modifying, rather than searching for the “master” parameter.

However, this freedom is not free: the bi-directionality requires inverse expressions to be input. In the case of our simple example, we did not edit the expression found in th relation, relying on the default equals expression. Let’s take a look at how we might make a slightly more complex relation expression.

Expressing Relations

When would like to have more interesting Relations, you can use the ExpressionEditorWindow that pops up when you click on the green button at the center of the Relation connector cable. In the ExpressionEditorWindow are two text fields allowing you to edit the bi-directional relationship between the two parameters.

Try This!


Simple piston with sinusoidal relation to shaft rotation.

Lets say that we would like to simulate the movement of a piston relative to the rotation of a crankshaft in a car engine. The piston rises and falls sinusoidally as the shaft turns. The expression is Piston.Trans_Y=Sin(Crankshaft.Rot_X). Lets go ahead and set this up:

  1. Choose a Cylinder from the 3D Library.
  2. Click on the name button at the top of the node palette and rename it “Piston.”
  3. Use your copy and paste short cuts to create a second Cylinder. Name it “Crankshaft.”
  4. Next to the Transformations foldout, click the axis button until it show “X.”
  5. Open the Transformations foldout and choose “Align_X” choose “Center.”
  6. Click on the Crankshaft in the SceneView and reduce the radius a bit.
  7. Connect the Piston.Trans_Y to the Crankshaft.RotX.
  8. Try rotating the Crankshaft – the Piston will continue upward or downward.
  9. Click on the green button in the middle of the red connector cable.
  10. archimatix-2016-09-07_11-47-12_pm

    The Edit Relation window lets you define the bi-directional mathematical expression.

    In the ExpressionEditor, in the field filled in with Crankshaft.Rot_X, change the expression to: Sin(Crankshaft.Rot_X) and then click on the Save button just below.

  11. Test by rotating the Crankshaft again. The Piston will oscillate up an down.
  12. Make the Piston more responsive to the rotation, decrease the stroke and lift it higher above the Crankshaft by editing the expression again to be: 1.5+.5*Sin(2*Crankshaft.Rot_X)

We will save more elaboration on this with the addition of a piston rod, etc. please see the tutorial The Parametric Engine.


Best Practice: Relating Translations


A simple parametric behavior: the red Box and blue Cylinder are always translated to the end of the gold Box.

If you find yourself connecting the Trans_X for one node and the Trans_X of another node to the same source, it is probably better to group the two nodes together with a Grouper and then relate the Grouper’s Trans_X to the source. This is analogous to parenting two GameObjects to an “Empty” GameObject in the Unity hierarchy window. While Archimatix can handle lots of relations, by using relation connections where a grouping would do, you will add more visual complexity to the NodeGraphWindow.

For example, the animation to the right depicts a parametric behavior whereby the red Box and the blue Cylinder are always positioned at the end of the gold Box. There are two ways we could encode this behavior:


Setting translations for each node will lead to many redundant Relations.

Method 1: This method is not preferable, but happens commonly while building up a graph. The Trans_X of the Cylinder has been related to the width parameter of the rectangular plan of the gold Box with an expression of Cylinder.Trans_X=Rectangle.width/2. When the red Box was added to the graph, a similar relation was added between the gold Box and the red Box, as shown in the figure to the right. Now when we drag the Handle for the Rectangle width, the blue Cylinder and the red Box translate accordingly.

The down side of this is that we have two connections and we have to enter the same mathematical expression twice (for the Cylinder and for the red Box). If we want to change that relationship, we have to change it in two places. Also, the graph will quickly get cluttered if such translations are maintained with Relation connections all the time.


Grouping Node

Grouping nodes allows fewer Relations.

Method 2: Alternatively, we can feed the Cylinder and Box into a Grouper and then relate the Trans_X of the Grouper to the width of the Rectangle.

The behavior of our parametric model will be exactly the same, but now, if we wish to edit the expression in the relations, we are editing in only one place. Also, the graph will have fewer parametric relations, which tends to make the graph more legible.





The BiChamferSide is a shape geometry that features independently adjustable top and bottom chamfers and a taper. It is most useful as the default sweep profile for an Extrude Node.

Archimatix 2016-09-05_08-44-20_AM

© 2024

Theme by Anders NorenUp ↑