ARCHIMATIX PRO Node-based Parametric Modeling for Unity [Unity Awards Finalist]

Archimatix was selected as a Finalist in the Tools category for the Unity Awards!

And its in the Asset Store!

Archimatix is a powerful and intuitive node-based parametric modeling editor extension that is available for purchase in the Asset Store! The goal for Archimatix is to allow 3D artists and game developers to graphically code the logic of architectural forms and typologies into a “smart model” that can be used to generate hundreds of unique instances that are all of the same art, helping game developers to quickly build out rich, coherent worlds.

Archimatix Pro now features a runtime API so that you can extend Archimatix magic to your players. In-game parametrics allows your players to modify levels on the fly, alter model forms, and provides the ability for you to unleash your players creativity while providing many opportunities for encouraging in-app purchases. Read more about runtime Archimatix here.

At its heart, Archimatix works with 2D parametric shapes which are used to generate meshes. Shapes, Meshers and Repeaters are arranged and linked in a graphical node editor, allowing the logic of the model to be articulated without writing any code. A single shape, say a wall profile, can be reused in multiple Meshers. For example, this poor fellow (a Beggar by Dexsoft in the Asset Store) has been imprisoned by Archimatix atop a Lathe Mesher object that shares a wall profile with the enclosing PlanSweep Mesher object.


In this example, a circle shape and the square shape have been merged to make the hybrid plan shape fed into the PlanSweep Mesher. The profile Shape is also fed into the Lathe Mesher. By clicking on the profile Shape palette, the Shape is selected and editable. In realtime, you can play with the profile Shape by dragging handles in the SceneView or the sliders in the Shape palette in the Archimatix editor view. Here is what the arrangement for the scene looks like in the editor:

In this example, Robot Kyle is helping to demonstrate a section profile composed of several Shapes added and subtracted together and spun on a Lathe.

In this shot, you can see the Archimatix library of 2D shapes. You can make your own shapes and add them to the library.

I will add updates to this thread often, but you can also follow along on twitter @archimatix and learn more at the support site (under development) at www.archimatix.com.

24 Likes

This looks marvelous! Bookmarked.
Would be great if this tool bring features of Rhino/Grasshopper to the Unity world.

1 Like

Count me in!

1 Like

Thanks @sloopidoopi and @lazygunn !

The PlanSweep is a really fun generator of forms and showcases the Shape merging functionality of @archimatix.

EndCaps on a PlanSweep with an “open” plan shape are made using the same section Shape in an extrude. When linked to the PlanSweep palette, the Mesher distributes instances of the extrude to the ends of the open Shape.


The black pipes or ducts are two circles merged together and fed into a PlanSweep as a “thickened” solid and also into the main shape merger to subtract out the space of the pipes.

I am currently fine tuning the breaking angles which can be controlled independently in the U and V directions. More pics soon!

1 Like

I’m in love, how would it fare at generating geometry at runtime? Thats one question, the next is, is it fair to ask for an approximate price for this handsome thing, got to plan my finances but this looks like a real winner for all kinds of world building, especially going into the abstract and sci fi like your last two excellent examples

@lazygunn , thanks for your interest and your questions! I am shooting for $135. Included in that will be the modeling system, a 2D library of parametric shapes and a couple dozen fully rigged parametric buildings and props ready to go for use in games. For example, there will be something like this included in the 3D Library when Archimatix ships:

In the scene view, the model has handles that you can drag to manipulate various parameters in realtime. You can get very different compositions with each move of a slider, sometime with serendipitous results. For example, in this next image, we see two different instances of the same parametric model:

In addition to varying the parameters, you can drop different materials in:

Once you make have model, you can duplicate it and start changing its logic by adding new palettes to the graph editor and relinking. For example, this model of a Renaissance villa is a “permutation” of the Victorian building above. Instead of a single column fed into the ShapeRepeater, an arch with a column pair on either side is fed in. The ShapeRepeater can resize the arch+columns module to fit into its bay, regardless of the length of the building.

Dropping in different materials yields:

This Renaissance villa will also ship with Archimatix. Props will include staircases, bookcases, columns, etc.

As for in-game, runtime parametrics, yes. In runtime, the meshes are generated and displayed very rapidly. While varying a parameter with say a slider, generated meshes are rendered using Graphics.DrawMesh which has little overhead. GameObjects (with colliders, etc.) are created only after a slider drag is completed. Light map UVs are generated with the click of a button or when “freezing” an instance of a model. Even a complex model can be generated with successive iterations at high “frame rates” (in terms of number of iterations per second as the player drags a slider). I will post some videos here soon to give a sense of the speed. That being said, runtime Archimatix will be focused on in an update after the initial release. Most of the work here will be adding logic runtime handles instead of the editor Handles and creating a subset of the codebase that is essential and can be licensed to ship with your games.

Keep the questions coming!

4 Likes

The break angles for a mesh are now adjustable as independent controls in the U and V directions. The first column is smooth in both U & V, the second has a low break angle in V, the third has a low break angle in U and the last has low angles in U & V.

The values for the break angles are controlled in the Shape input items of the Mesher palettes.

Woot looks amazing! Bookmarked! :slight_smile:


Handles can help you take control of Archimatix objects in the Unity SceneView. When you grab an object from the Archimatix library, it appears in the scene and is automatically selected, revealing the Handles that have been incorporated into it. By clicking and dragging these handles, you can alter various parameters. For example, with the conical object above made from a PlanSweep Generator, clicking on the centroid of the Section shape lets you change the size of the cone and the angle of its slope.

Advanced – Become a Handles Handler! If you interested in making your own parametric objects, you can add Handles to customize how your users will interact with them. If you combine two shapes in a PlanSweep Generator, you will automatically have the Handles associated with the individual shapes. But you can go ahead and add your own handles as well. To do this, open the Handles section on any Palette and click the “+” button. Once the new Handle has been created, you can name it and then fill in the X, Y, and Z fields to tell the handle where it should place itself at any given time. In the fields add numbers or expressions using parameter names from the Controls section and mathematical symbols or functions.

This looks pretty cool. I imagine you could create like space stations and stuff with it

1 Like

Thanks @imaginaryhuman_1 ! While testing the UV breaks on PlanSweep today, I did not create a space station, but I did indulge in a quick model of a strato-platform from which Robot Kyle can observe the carbon-based life forms on the planet below. I am finding Archimatix so fun to create with, that I need to remind myself to suck it up and just continue coding! I’m also starting to realize that the key to push on with Archimatix development is to just create new scenes often, otherwise I get caught playing–just testing a simple Shape offset or wall thick slider inevitably leads to strato-platforms like this, then the insertion of Quantum Theory mountains, then the tweaking of lighting and fog…

1 Like

The real power of Archimatix comes with relation building. Parameters in each palette can be linked to parameters in other palettes. They can be equal or governed by a mathematical relation that you designate. Changing the value of one parameter starts a ripple through the model as all the interdependent parameter values update.

In this example, we see a crankshaft that can push a rod and piston. Rather than trying to do this with physics, the mechanical system works entirely through parametric relations. All the sizes can be changed, including the stroke, piston diameter, etc. Once you have set all your sizes, just animating the rotation of the crankshaft moves the piston up and down in a sinusoidal motion.

https://vimeo.com/117062182
">

2 Likes

More with Shape merging: A “thickened” circle is subtracted from and arch Shape and the intersection fed into a separate extrude. Both resulting Shapes are then “thickened.” Just resizing the circle and dragging it around creates these variations:

Shape Mergers are done.Now polishing the Meshers code. Then its on to the Repeaters. Getting closer to release!

Here are the three basic Meshers:

1 Like

This question had to come: Do you have an idea of a release date? And this is a very tight question because its open to so many conditions, but would you consider runtime generation of a collection of meshes (imagine maybe a sci fi town made of your platform kyle is looking down from, as part of a pre-game session generation/loading screen) acceptable on a phone like a samsung galaxy s6? (no prizes for guessing im looking at VR)

Questions!

How does this handle textures?

When you’ve created a model, is it something you can export as a .obj?

Thanks!

1 Like

@lazygunn , barring any contingencies, holdups, random acts of Nature, etc. I am hoping for a late July release. But don’t tell anyone where this rumor started! For the runtime generation, the models you create in Archimatix behave like any other GameObject with meshes, colliders, etc. So your players can dwell in them, fight in them, jump off them, etc. You could grab a parametric model from the 3D library such as Kyle’ strata-platform and in a matter of minutes make a couple dozen instances from it, with no two being exactly alike, building out a sci-fi town. If you want to generate the town procedurally at runtime, this should be fine, but for now would require some code on your part to create the instances programmatically with Perlin noise, etc. For a later release, I’m interested in adding some generative goodies to help make city-building more automated. If you are interested in having your player vary models in runtime, this will take a bit more thought (i.e., with a library of interactive handles for runtime, etc).

Just for fun, here is home-grown VR shot of a recent Archimatix model which is testing the GridRepeater. A Column model goes into the GridNode mesh and a parametric arch goes into the GridBay mesh input:

1 Like

Ahh I’m not too concerned about in-game editing by the player(although there’s definitely an application in that), just being able to generate some unique structures procedurally is of interest to me, not too scared of code, mixing with voxel terrain is mainly the thought. This is looking great though, keep the examples coming

@infinitypbr , the uv mapping for textures is automatically generated based on the topology of the Mesher. In a PlanSweep, the u coordinates run around the plan by default and the v coordinates run along the section Shape. This leads to a minimum of distortion, particularly on say molding profiles that turn several 90 degree corners. You can edit the scale and displacement of the texture by controls in that ParametricObjects palette in the Archimatix editor window, or with a widget that appears in the SceneView when you select the object. Materials can be assigned directly to the object by dragging from the material chooser in the ProjectView. If a ParametricObject does not have a material, then a material is inherited from ParametricObjects that it links to. One type of ParametricObject is a Texture object with its own palette. You can link this to the Texture input of other objects to more globally control a texture.

Additional UVs for light mapping, etc are generated after the model is generated. The meshes generated work like any other mesh so they can use PBR materials. Since the meshes are generated algorithmically, one can add curved decals easily where the decal mesh is parallel to another surface, for example:



BTW, these shots are from a couple of weeks ago. Since then, the stretching around the foundation/sidewalk stones texture has been fixed in the PlanSweep mesher.

.obj export is fairly straight forward. If it is not there in the initial release, it will be in an update shortly there after.

1 Like

You can model extensively before dropping in textures. This “Gun Arch” has been rigged up to deliver many instances before any materials have been added.

The circle is used a few times: to generate the gun parts and the hole in the arch and the front frame. The adding materials:

Just playing with the circle Shape’s handle gives:

And adding more circles: