Skip to content

v0.2.6 — GridStripMotion, PerlinVertexMotion & Semantic Presets

Choose a tag to compare

@MichailSemoglou MichailSemoglou released this 21 Mar 15:21
· 4 commits to main since this release

What's New in v0.2.6

Added

  • GridStripMotion (algorithmic.typography.core) — new row/column strip displacement engine. Shifts every row and/or column by a wave function (SINE, SQUARE, TRIANGLE, SAWTOOTH, TANGENT, PERLIN) so the whole grid undulates like a banner. Independent axis control: setAxis(ROW | COLUMN | BOTH), setAmplitude(0–1), setPhaseStep(), per-axis speed (setRowSpeed, setColumnSpeed), and per-axis wave type. Fully wired into Configuration, AlgorithmicTypography.drawGrid() / drawGridAt(), JSON load/save round-trip, and the Builder.
  • PerlinVertexMotion (algorithmic.typography.core) — utility class for per-vertex Perlin noise deformation. deform(PVector[], frameCount) returns a new non-destructive vertex array perturbed by independent X/Y noise fields; deformContours(PVector[][], frameCount) batches across all sub-contours. Configurable amplitude, spatialScale, timeSpeed, and seed.
  • MagneticMotion named intensity presets — GENTLE, MODERATE, STRONG, SNAPPING constants with setPreset(int) for one-call configuration of strength, falloff, smoothing, and radius. New setStrengthNormalized(float t) overload maps a designer-friendly 0–1 value to the physical 400–4000 strength range.
  • RippleMotion named intensity presets — GENTLE, MODERATE, STRONG constants with setPreset(int). New setExpandSpeedNormalized(float t) overload maps 0–1 to the 60–400 px/s physical range.
  • AudioBridge semantic intensity mapping — SUBTLE, EXPRESSIVE, FULL constants plus semantic overloads mapBassTo(setter, int), mapMidTo(setter, int), mapTrebleTo(setter, int), mapOverallTo(setter, int) that apply pre-tuned standard ranges per band and intensity level, eliminating manual min/max lookup.
  • GridStripWave example — interactive sketch demonstrating all three GridStripMotion axis modes (ROW / COLUMN / BOTH), live amplitude and phase-step adjustment via keyboard, and wave-type cycling. Loads data/config.json for base typography parameters.

Changed

  • Configuration gains gridStripMotion field with getGridStripMotion(), setGridStripMotion(GridStripMotion), JSON round-trip in loadFromJSON()/toJSON(), copy(), and Builder.gridStripMotion().
  • AlgorithmicTypography gains setGridStripMotion() / getGridStripMotion() programmatic API; strip offset is applied before CellMotion inside both drawGrid() and drawGridAt(); loadConfiguration() now calls buildGridStripMotionFromJSON().