Generate Smart Shape | hyperPad Documentation
Logo
DocumentationObjectGenerate Smart Shape
Object

Generate Smart Shape

Published September 16, 2026

Pre-release feature — not available in the live app release yet.

Create a new shape while your game is running. Find this behaviour under Object → Lifetime. Choose a shape, give it artwork, then choose where it appears. You do not need a template object.

The control images are real dark-mode screenshots, cropped and arranged for readability. They show the inputs, not a completed gameplay setup. Diagrams illustrate the result.

Choose your shape

Open just the shape you are making. Box and Freeform have a short size form. Terrain and Path also let you choose a course mode.

Real Shape type, Action, and Generation mode controls with short explanations.

Box — floors, platforms, and rooms · 2 shape inputs

Choose Shape type → Box. Set Width and Height, then continue to artwork and placement below. Action and Generation mode are hidden.

Actual Box Width and Height input fields.

Width and Height on a Box and Freeform; Variation changes Freeform irregularity.

Try: Width 16 m, Height 2 m for a broad platform. A taller Box can form an RPG room floor. Repeating artwork fills the area as you resize it.

Box uses Top and Middle, plus optional Left, Right, and Bottom. Middle may be empty. Choose Solid for a stationary obstacle or No collision for decoration.

Terrain — rolling hills with ground beneath

Choose Terrain → Generate → Finite course for your first example.

Terrain Length, Hill height, crest-to-valley Hill spacing, and Ground depth.

Actual Length, Hill height, Hill spacing, Hill variation, and Ground depth inputs.

Try: Length 60 m, Hill height 3 m, Hill spacing 12 m, Hill variation 0%, Ground depth 10 m. Zero variation makes the pattern easy to compare while learning.

Assign Top and Middle artwork; Terrain requires Middle. Choose Surface collision to let a character stand on the hills. Ground depth adds visible ground; it does not make Surface collision solid underneath.

For Endless, Length disappears and Follow object appears. The hill controls stay. See “Endless courses” below.

Freeform — islands and irregular areas · 3 shape inputs

Choose Shape type → Freeform. It always creates one finite shape.

Actual Freeform Width, Height, and Variation fields.

Size controls and zero versus higher Freeform Variation.

Try: Width 16 m, Height 8 m, Variation 25%. At 0%, the outline is an oval, or a circle when Width and Height match. Variation controls irregularity; it does not choose a new random outline on every execution.

Use Perimeter for the outline and Fill for the inside. Choose Solid or No collision. Draw custom points with the Smart Shape Object.

Path — roads and racing tracks

Choose Path → Generate → Finite course. Leave Closed loop off for an open road.

Full road width, forward Length, and starting Heading.

Actual finite Path Length, Path width, Bend amount, Bend spacing, Closed loop, and Heading inputs.

Try: Length 60 m, Path width 4 m, Bend amount 8 m, Bend spacing 20 m, Heading . Set Bend amount to 0 for a straight road.

Heading points 0° right, 90° up, 180° left, 270° down. Length measures forward span, not distance around the curves. Add vehicle movement separately.

Open finite road, closed finite circuit, and Endless road compared.

Closed loop on: Bend spacing disappears. Bend amount becomes the end-turn radius. Length must exceed twice that radius; the radius must exceed half Path width plus any positive Wall offset.

Endless: Length and Closed loop disappear. Follow object and Bend variation appear. The road stays open.

Path has one artwork slot, Road. Choose Edge walls, Solid, or No collision. Solid fills the road ribbon; a closed track's central opening stays empty.

Give the shape artwork

Use static PNG graphics. Only the slots for your chosen shape appear. Tile size scales repeating artwork, not the shape's dimensions.

Box / Terrain — Top, Middle, and optional sides

Actual Top, Middle, Left, Right, Bottom, and Side and bottom graphics controls.

Closing Side and bottom graphics hides its controls; stored graphics still apply.

Terrain-only Generate Fill from Top button and shared Tile size field.

For Terrain, Generate Fill from Top prepares a fill asset in the editor before play. It needs a static Top graphic and is unavailable when Top is Dynamic.

Freeform / Path — Perimeter and Fill, or Road

Actual Freeform Perimeter and Fill selectors and Path Road selector.

Start with Tile size 1×. Increase it for larger artwork repetitions; decrease it for smaller repetitions. The range is 0.25×–4×.

Choose collision

Artwork is what you see. Collision is what objects touch. Collision-enabled generated shapes are stationary walls.

Orange collision boundaries compared with visible Terrain and Path artwork.

Show collision, Wall offset, Friction, and Bounce inputs

Actual Terrain, area, and Path physics selectors, plus Wall offset, Friction, and Bounce fields.

No collision hides and ignores Friction and Bounce. The other object's values also affect contact. Endless Terrain always uses Surface collision and hides that selector.

Path Wall offset appears only with Edge walls: 0 follows the edges, positive moves outward, negative moves onto the road.

Place it and run the next behaviour

  1. Expand Position and layer. Choose a gameplay layer and set Start X / Start Y in scene metres.
  2. Set Trigger on → Ready for setup that needs the new shape.
  3. Run Generate once. Save its Object ID to edit this particular shape later.

Actual Position and layer switch, Start X, Start Y, Layer, and Trigger on controls.

Closing Position and layer does not reset its values. Position your player and camera separately. Choosing a Follow object does not place the course under it.

Generate creates another shape every time it runs. To change the existing one, use Modify Smart Shape.

Generate Ready passes a saved Object ID to Modify Smart Shape, followed by a Status check.

Other Trigger on choices and output IDs

Choose Section generated for each published section, Completed when finite generation finishes, Failed for an error, or Each event for all event kinds. Check Event: ready, sectionGenerated, completed, or failed.

Completed means generation finished, not that the player reached the end. Endless has no normal Completed event. Each event may trigger a finite chain three times; check Event before one-time actions. Outputs update even for events that do not trigger the chain.

Owner Object ID versus temporary Section Object IDs.

Save Object ID for the whole shape. Terrain Object ID is a compatibility name for the same owner ID. Section Object ID addresses one live section; pass it unchanged. It expires when retired or reset.

For Endless Path section events, Section Index starts at 0. Section X, Y, and Heading describe the point halfway through the section's forward span, not necessarily halfway along its curved travel distance. These values are empty for finite Path events.

Endless courses

Make Terrain or Path continue ahead of the player

Actual Endless mode, Follow object selector, and Path Bend variation field.

Select one live Follow object with a physics body in the same scene. Use your moving player or vehicle. Replace the example screenshot selection with your own object.

The generator builds ahead and retires old sections. It chooses section lengths internally; Length is hidden. Only one Endless generator can be active in a scene. Add movement and camera-follow behaviours separately.

Path Bend variation is 0–100%. Randomness is internal, and the generator may soften bends to keep geometry valid. Terrain uses its hill controls and always has surface collision.

Stop, Resume, or Reset an existing course

Actual lifecycle Action dropdown and Generated Smart Shape target selector.

Add another Generate Smart Shape behaviour, select Terrain or Path, then choose the action. Supply the saved owner Object ID through the target's Dynamic input; section IDs are not accepted.

  • Stop: pause new Endless sections; existing ground remains. The player keeps moving.
  • Resume: continue a stopped live Endless course. Moving far beyond retained ground while stopped can prevent a safe resume.
  • Reset: remove the course and invalidate its IDs. Run Generate again for a replacement.

These actions continue after success or failure and do not use Trigger on. Reset does not rewind the player or recreate the same random course.

If something does not work

Read Error first. Missing Terrain Middle artwork, invalid dimensions, an unsuitable Follow object, or tight road bends can cause failure. Try broader bends or a narrower road when geometry does not fit. If shapes pile up, Generate is running repeatedly.

The expandable reference below keeps the exact rules and outputs available when you need them.

Field reference: open only what you need

The detailed definitions below are grouped by shape and purpose. Each group covers several possible selections; these are not all visible inputs at once.

Creates a Terrain, Box, Freeform, or Path Smart Shape directly from graphics. Choose its type to show the relevant settings; no template object is needed.

Box — dimensions

Choose Box. Only Width and Height define its geometry. Artwork and shared controls are in their own group below.

Box

Creates one rectangular shape using Width and Height. Top, Middle, Left, Right, and Bottom can each use different graphics. Choose Solid for a physical obstacle or No collision for decoration.

Width

The horizontal size of a Box or Freeform shape in metres. Use a positive value. This changes the shape dimensions, not the size of each repeated graphic tile.

Height

The vertical size of a Box or Freeform shape in metres. Use a positive value. This is separate from Terrain's Hill height and Ground depth.

Terrain — hills and ground

Choose Terrain → Generate. Length is finite-only; hill inputs and Ground depth are used in either mode. Surface/Solid ground choices apply to finite Terrain; Endless uses Surface collision automatically.

Terrain

Creates a hill surface extending along the horizontal axis, with tiled ground beneath it. It requires a Middle graphic. Finite Terrain uses Length; Endless Terrain chooses its own section lengths and always uses Surface collision.

Length

For finite Terrain, the horizontal course length in metres. For finite Path, the span along Heading in metres, not the distance travelled around bends or the circumference of a closed loop. Use a positive value. Very long courses with closely spaced hills or bends can exceed the supported shape detail; shorten Length or increase spacing if generation fails.

Hill height

The approximate crest-to-valley height of Terrain hills in metres, not the height on each side of the starting level. Zero makes flat ground. Larger values make taller hills; increase Hill spacing if the hills become too steep to generate.

Hill spacing

The requested horizontal distance in metres between neighbouring crests and valleys, not a complete crest-to-crest cycle. Use a positive value. Spacing is fitted to the generated section, and Hill variation can vary individual intervals.

Hill variation

Terrain variation from 0% to 100%. Zero gives a regular hill pattern; higher values vary hill heights and spacing. Randomness is chosen internally for each new generation, with no seed input for replaying an exact course.

Ground depth

The depth of filled ground beneath the Terrain hills in metres. Use a positive value. This changes the visible ground depth; Surface collision still follows only the top, while Solid ground includes the filled area.

Generate Fill from Top

An editor action for Terrain, not an action run when the behaviour executes. Choose a static Top graphic, then use this button to create a fill asset and assign it to Middle. It is unavailable for a Dynamic Top input and does not accept an animation cycle or frame. If the graphics change while the fill is being prepared, generate it again.

Surface collision

For Terrain, collision follows the hill surface only. The visible ground underneath is not filled with solid collision, regardless of Ground depth. This is optional for finite Terrain and required for Endless Terrain.

Solid ground

For finite Terrain, makes the ground beneath the hill surface solid, including its sides and bottom. Ground depth controls how far the filled ground extends. This choice is not offered for Endless Terrain.

Freeform — dimensions and variation

Choose Freeform. These are its three geometry inputs; it always creates one finite shape.

Freeform

Creates one rounded outline using Width, Height, and Variation. Perimeter decorates its border and Fill covers its interior. This generator makes the outline for you; it is not a drawing tool.

Width

The horizontal size of a Box or Freeform shape in metres. Use a positive value. This changes the shape dimensions, not the size of each repeated graphic tile.

Height

The vertical size of a Box or Freeform shape in metres. Use a positive value. This is separate from Terrain's Hill height and Ground depth.

Variation

For Freeform, a value from 0% to 100% that changes the rounded outline's irregularity. Zero gives an oval, or a circle when Width and Height match. Higher values pull parts of the outline inward. Unlike Terrain variation, it does not choose a new random outline on each run.

Path — road geometry and edge walls

Choose Path → Generate. Length and Closed loop are finite-only; Bend variation is Endless-only. Closed loops hide Bend spacing. Wall offset appears only with Edge walls.

Path

Creates a road from the Road graphic. Finite paths can be open or a closed loop; Endless paths remain open and add sections along Heading. Creating a path does not make another object travel along it. Use separate movement behaviours and Sample path in Modify Smart Shape when you need positions on the road.

Length

For finite Terrain, the horizontal course length in metres. For finite Path, the span along Heading in metres, not the distance travelled around bends or the circumference of a closed loop. Use a positive value. Very long courses with closely spaced hills or bends can exceed the supported shape detail; shorten Length or increase spacing if generation fails.

Path width

The full width of the road in metres, measured across its centreline. Use a positive value. Edge walls start at either side of this width before Wall offset is applied. Tight bends must leave enough space for the road and walls without crossing.

Bend amount

For an open Path, the sideways bend size in metres; zero makes a straight road. Endless Path may soften bends to keep the road and walls from folding across each other. For Closed loop, this becomes the radius of the rounded end turns and must be greater than half Path width, plus any positive Wall offset when using Edge walls.

Bend spacing

For an open Path, the requested distance along Heading in metres between alternating bends. Use a positive value; larger spacing spreads the turns farther apart. Endless sections fit bends to their internal section length, so the exact spacing can differ. Closed loop does not use this input.

Bend variation

For Endless Path only, a value from 0% to 100% that varies bend sizes, spacing, and direction between sections. Zero uses a regular pattern. Randomness is chosen internally for each new run; finite paths do not use this setting.

Closed loop

For finite Path, turn this on to create a closed, rounded loop with two straight stretches and rounded ends. Turn it off for an open road. Length must exceed twice Bend amount, and the end turns must leave enough room for Path width and any wall offset. This closes the road geometry only; it does not loop object movement. Endless mode ignores this setting.

Heading

The Path's starting forward direction in degrees: 0° points right, 90° up, 180° left, and 270° or -90° down. Positive angles turn counterclockwise. Open paths bend around this direction; closed loops are rotated to it. Heading does not apply to Terrain, Box, or Freeform.

Edge walls

For Path, creates collision boundaries along both sides of the road while leaving the space between them open for objects to travel through. It does not make the road interior solid. Use Wall offset to adjust where those boundaries sit relative to the artwork.

Wall offset

For Path with Edge walls, the distance in metres that both walls move from the road edges. Zero follows the edges, positive values move outward, and negative values move inward. This does not resize the road artwork. Offsets that make the walls cross or collapse a bend are rejected; use an offset closer to zero or a wider bend.

Shared setup — artwork, collision, and placement

Only the slots and collision choices for your selected shape appear. Friction and Bounce require collision. Expand the placement or side-artwork disclosures only when you need them.

Shape type

Choose Terrain for hills with ground beneath them, Box for a rectangle, Freeform for a rounded irregular outline, or Path for a road. Terrain and Path offer course actions and Finite course or Endless modes. Box and Freeform always generate one finite shape. Only settings for the selected type are used.

Graphics

Choose the graphics that tile along the shape and fill its interior. Terrain and Box use Top, Middle, Left, Right, and Bottom; Freeform uses Perimeter and Fill; Path uses Road. Slots belonging to another shape type are ignored, including their Dynamic bindings. Empty optional slots add no artwork for that role.

Top

For Terrain, the graphic repeated along the hill surface. For Box, the graphic along the upper edge. Top does not automatically fill the area beneath it; choose Middle separately, or use Generate Fill from Top for Terrain.

Middle

The graphic tiled inside Terrain or Box. Terrain requires this slot to fill the ground beneath Top. Choose a fill tile directly or use a previously generated fill graphic; Box can leave it empty when only its edges need artwork.

Side and bottom graphics

Shows or hides the Left, Right, and Bottom selectors for Terrain and Box. This only collapses the controls: previously selected side and bottom graphics are still used when the controls are hidden.

Left

The graphic for the left-facing edge of a Terrain or Box outline. It does not replace Top or fill the interior. Leave this optional slot empty if no left-edge artwork is needed.

Right

The graphic for the right-facing edge of a Terrain or Box outline. It does not replace Top or fill the interior. Leave this optional slot empty if no right-edge artwork is needed.

Bottom

The graphic for the bottom edge of a Terrain or Box outline. Middle still supplies the interior fill. Leave this optional slot empty if no bottom-edge artwork is needed.

Perimeter

For Freeform, the graphic repeated around the entire curved border. This uses the Top graphic slot internally but is presented as Perimeter for this shape type.

Fill

For Freeform, the graphic tiled inside the outline. This uses the Middle graphic slot internally. Leave it empty if only the perimeter should have artwork.

Road

For Path, the graphic tiled along the road. This is the only artwork slot used by Path and shares the Top slot internally. Edge walls are collision boundaries, not additional wall-graphic slots.

Tile size

The scale multiplier for repeated graphics, from 0.25× to 4×. At 1× the graphics use their normal tile size; 2× makes the tiles larger and 0.5× makes them smaller. This changes artwork repetition, not Length, Width, Path width, or other shape dimensions.

Physics

Choose how the generated shape collides with other objects. Collision-enabled shapes are stationary walls, not freely moving physics objects. Terrain has Surface collision, Solid ground, or No collision; Path has Edge walls, Solid, or No collision; Box and Freeform have Solid or No collision. Endless Terrain always uses Surface collision.

Solid

For Box and Freeform, makes the filled outline a solid obstacle. For Path, makes the road strip itself solid rather than creating only side walls. A closed road remains a strip around its loop; Solid does not fill the central opening.

No collision

Generates visible artwork without collision. Other objects can pass through it. Friction and Bounce are hidden and ignored for this choice. No collision is available for finite Terrain and for Box, Freeform, and Path, but not for Endless Terrain.

Friction

A unitless collision value from 0 to 10. Zero is slippery; higher values resist sliding more. The other object's friction also affects contact. This setting does not slow an object that is not touching the generated collision.

Bounce

A unitless collision value from 0 to 1. Zero adds no bounce from this shape; higher values make collisions more elastic. The other object's bounce also affects the result. This is not a force or movement speed.

Position and layer

Shows or hides Start X, Start Y, and the layer selector. This only collapses the controls: their stored values are still used when hidden. Positions are in scene metres, not screen pixels or offsets from the Follow object.

Start X

The horizontal scene position of the generated shape's origin in metres. Larger values place it farther right and negative values farther left. Terrain extends along the horizontal axis; Path extends according to Heading. The default is 0 m.

Start Y

The vertical scene position of the generated shape's origin in metres. Larger values place it higher and negative values lower. Terrain hills rise and fall relative to this starting level. The default is 0 m.

Layer

The scene layer that receives the generated Smart Shape and its sections. Choose an available gameplay layer. Layer ordering affects where the artwork appears, and the layer's collision grouping affects which objects can collide with it. Selecting a missing layer fails instead of silently using a different one.

Terrain and Path — modes and course actions

These controls do not appear for Box or Freeform. Generate uses the selected mode. Stop, Resume, and Reset use an existing owner target instead of the generation inputs.

Action

For Terrain and Path, choose Generate, Stop, Resume, or Reset. Generate uses the shape settings below. The other actions use an existing generated Smart Shape instead and trigger connected behaviours when the action succeeds or fails.

Generate

Creates a new Smart Shape with its own Object ID. Running Generate again creates another shape; it does not replace a previously published shape. Terrain hills and Endless Path bends may vary between runs when their variation is above zero.

Stop

Pauses generation of new sections for the selected Endless course, keeping its currently published graphics and collisions. It does not stop or move the Follow object. A finite shape remains in place but has no further sections to generate.

Resume

Continues a live Endless course after Stop, using its existing settings and Follow object. Resume does not recreate a reset or deleted course and is not available for finite courses. Moving beyond the retained course while paused can prevent a safe resume; check Error if it fails.

Reset

Removes the selected generated course and invalidates its Object ID and section references. Reset does not rewind the Follow object, automatically generate a replacement, or guarantee the same random course. Run Generate again to create a new course.

Generated Smart Shape

For Stop, Resume, or Reset, set Dynamic Object A to the Object ID returned by Generate Smart Shape. Select exactly one generated course owner, not its Section Object ID or the Follow object.

Generation mode

Finite course creates Terrain or Path over the requested Length once. Endless creates sections ahead of a Follow object and retires older sections to keep the course bounded in memory. Endless ignores Length and Closed loop; it does not repeat a finite course or preserve every old section. Only one Endless generator can be active in a scene.

Follow object

In Endless mode, choose exactly one live object with a physics body in the same scene, such as your player or vehicle. Its position guides where sections are needed. This does not make the object move, attach the course to it, or make the camera follow it; set up movement and camera behaviours separately. Start X and Start Y still place the generated course.

Completion events and outputs

Trigger on is a Generate input. The outputs are returned values, not settings to fill in. Section position outputs are exposed for Path and populated for Endless Path section events.

Trigger on

Select which generation event runs connected behaviours. Outputs update when events arrive even if that event is not selected. Stop, Resume, and Reset do not use this selector: they report a Completed event on success or Failed on error. Choose Each event if the same behaviour chain must handle both successful generation and failures.

Ready

Triggers after the initial shape and its selected collision have entered the scene. Use this for one-time setup that needs Object ID. An Endless Ready event need not identify an individual section; use Section generated when section details are required.

Section generated

Triggers for each newly published section. A finite shape produces one section reference; Endless courses produce more as they extend. Use Section Object ID to target that section. Endless Path also provides Section Index, Section X, Section Y, and Section Heading for section-based placement logic.

Completed

Triggers when finite generation has finished, including Box, Freeform, and closed Path. It does not mean a player reached the end of the course. Endless generation has no normal Completed event because it continues adding sections.

Failed

Triggers if generation cannot proceed, such as invalid settings, unavailable graphics, a missing Follow object, or a streaming safety failure. Read Error for the reason. An Endless streaming failure can leave previously published sections in place; it does not imply the course was reset.

Each event

Triggers for every received Ready, Section generated, Completed, or Failed event. Inspect Event to choose which connected logic to run. One finite generation can therefore trigger the behaviour multiple times: once for Ready, once for its section, and once for Completed.

Outputs

These are values you can connect to Dynamic inputs in other behaviours. They describe the latest received event, so some fields are empty when that event has no matching object or section. Save IDs you need before later events overwrite the outputs, and do not use a reference after its target is removed.

Object ID

The generated Smart Shape owner's identifier. Pass it to Dynamic Object A of Modify Smart Shape or Set Graphic to target the whole shape. For a generated Terrain or Path course, also use this owner ID for Stop, Resume, or Reset. Reset invalidates the ID even though the Reset completion reports which owner was removed.

Terrain Object ID

A compatibility alias containing the same value as Object ID, including for Box, Freeform, and Path. It is not a separate object or section.

Section Object ID

An opaque reference to one published section, not an ordinary scene object number. Pass it unchanged to Dynamic Object A of Modify Smart Shape or Set Graphic to target that section. It expires when the section retires or the course is reset. Do not perform arithmetic on it or use it for Stop, Resume, or Reset. Endless sections restrict edits that would break their joins; use supported section graphics, bend, or sampling actions.

Section Index

For an Endless Path section event, the section's sequence number starting at 0. Later sections keep increasing this number even as older sections retire. It is useful for counting or alternating placement logic, but is not an Object ID. It is empty for finite paths and events without Endless Path section details.

Section X

For an Endless Path section event, the scene-space X coordinate in metres halfway through that section's forward span. This is a sampled road position, not the centre of the artwork's bounding box or necessarily halfway by curved travel distance. Use Section Object ID with Sample path in Modify Smart Shape for another position along the section.

Section Y

The scene-space Y coordinate in metres at the same Endless Path sample as Section X. These coordinates are suitable for scene placement, not screen placement. Section X and Section Y are empty for finite paths and events without Endless Path section details.

Section Heading

For an Endless Path section event, the road's forward tangent at the Section X/Y sample in degrees: 0° right, 90° up. This can differ from the initial Heading because the road bends. It is empty for finite paths and events without Endless Path section details.

Status

The latest operation or course state, for example generating, completed, ready, paused, blocked, failed, or reset. Status describes the state; Event describes what happened. A Failed event may have blocked status when an Endless course cannot safely continue.

Error

A readable explanation of the latest failure, or an empty value when the latest event has no error. Check this when settings are rejected or streaming stops progressing. Error and Status still update even when Trigger on is set to a different event.

Event

The event name for branching logic: ready, sectionGenerated, completed, or failed. These output values are not the display labels; for example, the Section generated choice outputs sectionGenerated. Each event is a trigger choice, not a value returned by Event.