Example animation sequenced by algorhythm, rendered in Oxidizer. (Music by Kent)

Introduction

Algorhythm is a Lua script for Oxidizer that helps you create animation sequences of genomes. As the name implies, it has built-in algorithms for creating beat-oriented sequences that can be synchronized to music, for making music videos. But it also provides a generalized framework for scripting key frames manually for any kind of storyboard.

An example sequence in diagram form is shown on the right.

Here are some examples of sequences that become easy to do with automated algorithms:

  • Soft beat-sync: random walk with moderate exponential attack and spline smoothing
  • Hard beat-sync: fast attack with exponential decay and post-interpolation smoothing
  • Genetic drift: slow, asynchronous random walk with pure spline smoothing
  • Brownian motion: fast, asynchronous random walk with pulsed attack and post-smoothing
  • Spectrum analyzer modulation (external signal input)

Algorhythm can of course also be used to implement much simpler standard types of sequences:

  • Xform rotation, scaling, translation
  • Genome morphing (can be combined with other modulations)
  • Camera movements, environment adjustments
  • Color map rotations, HSL modulations
  • Variation modulations, etc.

All comments and feedback are welcome. I would appreciate to hear of it if you find bugs or discover problems with running the script. You can either leave a comment on my blog, or email me.

Components

The algorhythm sequencing script is an interpolation engine that generates secuences of genomes directly into Oxidizer. It takes as input a Control Script,and it requires some additional script packages in order to run. All the components can be downloaded from my Public Folder. You will need the following:

  1. algorhythm.lua
  2. utils.lua
  3. mods.lua
  4. cs_temp.lua

The control script template (cs_temp.lua) is just to get you started. I recommend that you download and read the Algorhythm Documentation (updated 2009-05-09) before trying to run anything though, since you need to customize some of the code to use the correct file paths for your computer system. Aside from that, there is no compilation or installation required, these are pure Lua scripts. I will be adding more template control scripts here eventually, for standard type sequences.

Example control scripts

Loops & Edges

file namedescription
cs_loop.luasimple genome loop by xform rotations
cs_edge.luasimple genome morph between two genomes (combined with xform rotations)
cs_lel.lualoop-edge-loop, for two genomes
cs_cloop.luacontiguous morphs for an arbitrary number of genomes
cs_cloop2.luaconitiguous loop-edge segments between an arbitrary number of genomes

Randomization algorithms

file namedescription
cs_drift.luaRandom genetic drift of genome parameters
cs_gloop.luaGenetic loop; a somewhat spiced up genome loop
cs_beat1.luaSoft beat-sync (generic template)
cs_beat2.luaHard beat-sync (generic template)

More to come.

Related pages

Much of the prior developments and experiments that led up to the version of the code called "algorhythm" has been documented in other places. Here are some web pages that contain related material:




Spacetime anomaly. Xform rotations combined with camera movements.
(16 MB; download link here in case the inline clip loads slowly)


Beat-syncing animation created with seq7, the precursor of algorhythm.
·  ·  ·