Curvy Generator

Curvy Generator (CG) is a graph-based, modular ecosystem, designed for - but not limited to - turning spline based input data into whatever output you can imagine, for example:

  • Extrude shapes along paths, thus creating volumes
  • Deform existing meshes along paths
  • Mix & Modify paths, volumes etc…
  • Clone Meshes & GameObjects along paths or volumes
  • Create & Merge meshes
  • Etc.

A Curvy Generator graph window

CG graphs are built using modules. A module takes some input data, processes it and generates output data that can be linked to one or more subsequent modules. Much like ShaderTree or similar products. CG works with its own set of data types, being completely uncoupled from Unity data classes (read: threadable!).

Curvy Generator was developed with flexibility in mind, so it offers you an ecosystem taking care of external and internals resources (meshes, splines etc…), caching, initialization and module execution etc. Inside this ecosystem, you can:

  • create your own modules
  • create your own data types and resource types
  • benefit from the builtin caching and debugging framework

Unless otherwise explicitly stated Curvy Generator treats all Input and Output as local to the CurvyGenerator GameObject
  • Modules can be connected by using slots, each requiring a certain data type
  • Data Types can be subtyped. E.g. Path inherits from Shape, so you can plugin a Path when a Shape is required
  • Smart Caching: if a module's input is unchanged, it returns the cached output instead of recalculating again
Show Debug

Show Debug Output?

Auto Refresh

Whether to automatically refresh the spline when necessary

Refresh Delay

The minimum delay between two automatic generator's refreshing while in Play mode, in milliseconds

Refresh Delay Editor

The minimum delay between two automatic generator's refreshing while in Edit mode, in milliseconds

You can react to certain spline related events by adding a handler to the following UnityEvents:


Called each time after the generator has refreshed

Force Frequent Updates

By default Unity calls scripts' update less frequently in Edit mode. ForceFrequentUpdates forces this script to update in Edit mode as often as in Play mode. Most users don't need that, but that was helpful for a user working with cameras controlled by Unity in Edit mode