Concept Data Model

What Are Elements?

In OctoShaper, procedural data moves through graphs as an ElementSet. The easiest way to read it is as a procedural spreadsheet: each element is one row, each attribute is one named column, and each node changes the table rather than dealing with one isolated object at a time. If you want to see where that table sits in the overall graph model, jump to Node Graph Basics?.

Mental Model

Read an ElementSet like a procedural spreadsheet

Row
Position
Scale
Color
Prefab
0
(0, 0, 0)
1.0
Green
Rock_A
1
(2, 0, 0)
1.4
Green
Rock_A
2
(4, 0, 0)
0.8
Brown
Rock_B

A graph is usually not thinking about one rock, one spline point, or one spawn target. It is thinking about a whole table of elements and deciding which rows to add, remove, or enrich.

An element is one unit of procedural work

Depending on the graph, one element might represent a point in space, a potential building piece, a placed prefab, a spline sample, or a candidate in a scatter pass.

The important part is not the label. The important part is that each row keeps all the values for that one unit together while the graph processes the whole collection.

Attributes are the payload

  • Attributes are stored by name and type across the full set.
  • Some attributes are geometric, such as position, rotation, or scale.
  • Some are semantic, such as prefab choice, biome tag, mask weight, or any custom value your graph produces.
  • Nodes can create new attributes, overwrite existing ones, or use them to decide which rows survive.

What nodes usually do to the table

Generate

Create rows or expand the current set. A generator might turn one input row into many output rows.

Modify

Add attributes, transform values, or derive new columns from existing data.

Filter

Remove rows that no longer match the procedural rule you want to keep.

By the time the graph reaches main output, the ElementSet is the final table that runtime instancing, visualization, or import workflows consume. Those consumers are covered in Runtime Generation? and Procedural Prefab?.

How this appears at the graph boundary

  • The main graph input is an ElementSet coming into the graph.
  • The main graph output is an ElementSet leaving the graph.
  • Main-input requirements describe which attributes must already exist on incoming rows.
  • Parameters do not replace ElementSet data. They steer how the graph transforms that data?.