db&w documentation wiki

finest software | finest docs

Site Tools


tools:s-tk:roadmap

Spline Toolkit (S-Tk) Roadmap

This roadmap has a full set of spline related tools in Layout as a goal. Since we want to release at least one new plugin every month to our patrons, the development is split up into small steps, each of which adds to the capabilities of the spline toolkit.

There may be some cases where the development takes more than a month (such as the initial spline editor) but we try to keep these rare.

Following the base stage, the following modules may be added but some may depend on others.


Module 2 - More Spline types

This adds CSplines (the ones used by default for LightWave envelopes) as well as B-Splines. Splines can be converted, but only the control points are translated. The shape of the curves will change.

Module 3 - Editor Plus

Add more functionality to the spline editing tool such as the ability to multi-select. Also performs various general tweaks - better automatic smoothing, improved alignment. Might even get rid of the tool to incorporate it into the spline primitive directly (no need to activate the tool, just select the spline and edit).

Module 4 - Deform

Done, but left here because part 2 references it.

Adds a node and a deformer plugin to deform a mesh along a spline.

Requires splines to be animatable as well as the proximity node.

Part 2

Add the ability to use a spline as the source shape as well.

Module 6 - Renderable Splines

Allows for splines to be rendered. http://www.pbr-book.org/3ed-2018/Shapes/Curves.html

Modukle 7 - Spline Instancer

Instance along a spline. This requires a custom instancer.

Requests

  • Constraining the spline editor to “background” geometry.
  • Convert Nulls to Splines and vice versa - could be tricky given that the spline types aren't compatible and the LW native splines are more limited.
  • Instancing along splines
  • Distance based controls when attaching to a spline (needs a pre-computation for the spline).
  • Spline Presets: Helix (with start/end radius and start/end height), Circle, Arc etc.
  • Spline as Instancer source
  • Spline with Sweep modifier for parametric tubes, ropes (with ability to use as textured object)
  • Spline Extrude with profile for parametric rails
  • Spline with Loft modifier (maybe not that useful to setup in Layout)
  • Spline convert to polygon
  • Spline Jitter / Jolt / Overshoot
  • Spline Textured / Noise Displacement
  • Spline Dynamics (also combined with the Sweep modifier) for dynamic ropes

Completed stages

Base Stage

A new Primitive Type1) will be developed, called “db&w Spline”.

Initially this will host a Bezier Spline2) which can be open or closed. When selected, it can be edited using a Gizmo3).

Internally, the splines will be managed using a global plugin4) to allow other plugins to discover and use the splines.

To make the spline useful, we'll add a motion plugin as well as an evaluation node that can be used for motion node graphs.

The spline will be static - the control points can not be animated at this stage.

Due to the complexity of getting the architecture right, The Base Stage will be a two months project on Patreon.

Module 1 - Animatable splines

Allows for the whole spline shape to be animated using a single envelope.

Might adds envelopes to the spline controls points and handles and updates the gizmo to allow for keyframing the points and handles.

Allows knots and control points to follow other items.

Module 5 - Proximity Node

A node that computes the closest distance to a spline, this can be used for shading.

A prerequisite for spline based deformations.

Module 4 - Deform

Adds a node and a deformer plugin to deform a mesh along a spline.

Requires splines to be animatable as well as the proximity node.

This has been split into two parts

Part 1

Axis aligned deformations only, using a spline as a target shape.

1)
Just like Shapes and OpenVDB items
2)
that's the ones with handles
3)
a part of the LW SDK that allows for interacting with items in the viewports
4)
essentially a library that can be used by multiple plugins
tools/s-tk/roadmap.txt · Last modified: 2021/04/09 19:49 by lightwolf