Modules are the working horse of Curvy Generator. A module usually accepts some data that was generated by another module. You create relations between modules by linking a module's output slot to another module's input slot. A module slot can be optional or accept/generate arrays.

In general, data flows from a parent module (output) to a subsequent module (input). As an exception from this rule, there are modules implementing the IOnRequestProcessing interface. Unlike normal modules, these modules get a request from a subsequent module, then start their processing and return data. This allowes modules to exchange request parameters with their parent module and receive specific data.

This is most useful for data that is resolutionless by nature (like Shape or Path) to receive details about the needed rasterization options: The moment a module wants a path, it sends a request including parameters (From/To/Resolution/etc..) “up the tree”. The very first module implementing the IOnRequestProcessing then generates the requested data and send it down the tree like usual.

Modules working this way have both their name and slots shown in green while regular modules accepting such a module have their corresponding input slot shown in green only

Module Titles shown in red aren't configured properly (i.e. a mandatory link is missing or the linked input module isn't configured), while green titles stands for modules implementing IOnRequestProcessing

Module slot legend
  • OnRequest - data will be requested by a module, i.e. OnRequestProcessing
  • Optional Slot - slot can be linked for additional functionality
  • ArraySlot[] - slot accepting one or more links of the same data or generating an array of data

See also: Datatypes

The following modules, listed by category, are provided:

Module Input Output Description
Input Spline Path Path Create a Path from a CurvySpline
Input Spline Shape Shape Create a Shape from a CurvySpline
Input Spots Spots Create a collection of fixed Spots
Input Transform Spots Spots Create a collection of variable Spots
Input Meshes VMesh[] Create VMeshes from Unity meshes
Input GameObject GameObject[] Create GameObjects from Unity GameObjects/Prefabs
Module Input Output Description
TRS Path Path Path Translate, Rotate, Scale a Path
TRS Shape Shape Shape Translate, Rotate, Scale a Shape
TRS Mesh VMesh VMesh Translate, Rotate, Scale a VMesh
Path Relative Translation Path Path Translate a Path relatively to it's lateral direction
Mix Paths Path, Path Path Combine two Paths
Mix Shapes Shape, Shape Shape Combine two Shapes
Variable Mix Shapes Shape, Shape Shape Combine two Shapes in a way that varies through a shape's extrusion
Conform Path Path Path Project a Path onto colliders/terrains
Deform Mesh VMesh[], Path or Volume, Spots[] VMesh[], Spots Deform a mesh following a path
Module Input Output Description
Shape Extrusion Path, Shape Volume, Volume (Hollow) Extrude a Shape along a Path
Volume Mesh Volume VMesh[] Generate VMesh from Volume
Volume Caps Volume, Volume[] VMesh[] Generate Volume Caps VMeshes
Rasterized Path Path Path Rasterize a Path
Volume Spots Path or Volume, Bounds[] Spots Clone objects along a Path or Volume
Module Input Output Description
Create Mesh VMesh[], Spots Create Mesh resources from VMeshes
Create GameObject GameObject[], Spots Instantiate GameObjects/Prefabs from GameObject
Create Path Line Renderer Path Feed a Line Renderer with a Path
Module Input Output Description
GameObject To Mesh GameObjects[] VMesh Create VMeshes from GameObjects
Module Input Output Description
Note Text notes
Debug Volume Volume Visualize a Volume
Debug VMesh VMesh Visualize a VMesh
Debug Rasterized Path Path Visualize a rasterized Path