| 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:
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 name | description |
|---|---|
| cs_loop.lua | simple genome loop by xform rotations |
| cs_edge.lua | simple genome morph between two genomes (combined with xform rotations) |
| cs_lel.lua | loop-edge-loop, for two genomes |
| cs_cloop.lua | contiguous morphs for an arbitrary number of genomes |
| cs_cloop2.lua | conitiguous loop-edge segments between an arbitrary number of genomes |
Randomization algorithms
| file name | description |
|---|---|
| cs_drift.lua | Random genetic drift of genome parameters |
| cs_gloop.lua | Genetic loop; a somewhat spiced up genome loop |
| cs_beat1.lua | Soft beat-sync (generic template) |
| cs_beat2.lua | Hard 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:
- Animation scripting (page documenting the precursor code, seq7)
- Hallongrotta (chronicle of experimental developments)
- Oxidizer scripting (some of my other scripts documented briefly)
- Sequencing with scripts Part II (OxiWiki page)
- Scripting with Oxidizer (OxiWiki page)
| 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. |