Crate spectra [] [src]

Demoscene framework.


This framework is intented to be used to build up demos as a primary purpose. Everything was designed to quickly write demoscene effects and edit them into an audiovisual executable. However, because a lot was added – especially for debugging purposes, it should be possible to use this framework for other purposes as well – among simulations, animations and video games.


This framework was designed to be simple and flexible. Following that path, it’s not impossible that some of its features get moved out of the framework to become a set of dependencies – so that people who don’t want those features can just preclude them from the compilation chain.

Up to now, the framework provides you with several modules:

  • audio: this module gives you the ability to play a soundtrack (no streaming implemented yet though; the whole soundtrack is loaded into memory) and interact with basic yet useful information about playback (play, pause, toggle, track length, track cursor, etc.)
  • bootstrapping: this module abstracts over the underlying technologies and provides several simple types that can be used to interact with the demo, such as initialization, default event handling, and so on
  • camera: provides some camera features for both release and debugging purposes
  • color: color types
  • edit: everything you need to edit your demo – it provides types and functions to reason about timelines, tracks, cuts and clips, hence easing the overall making of a demo
  • gui: this module provides some GUI code that you can use to build nice debugging interfaces – up to now, it’s not designed for release code, but it might be at some time
  • linear: linear algebra
  • model: this module provides all the code required to abstract other meshes and add them the concept of materials
  • object: linked to models, this module adds the concept of space properties to models – so that you can actually have them in your scenes
  • overlay: this module provides 2D primitives and rendering functions
  • projection: projection trait and functions
  • shader: provides
  • extra: some extra (but not mandatory) other modules


pub extern crate luminance;



Gathers everything needed to animate and synchronize a production.


Modules used to implement renderers.


Contains scene related stuff, from models to lights, axis-aligned bounding boxes and transforms.


System related features. You can find information about how to bootstrap your application, handle events and how to handle resources.



Allows you to pull the authors for the app from your Cargo.toml at compile time in the form: "author1 lastname <>:author2 lastname <>"


Allows you to pull the name from your Cargo.toml at compile time.


Allows you to pull the version from your Cargo.toml at compile time as MAJOR.MINOR.PATCH_PKGVERSION_PRE