# Introduction to Moppi Demopaja

Moppi Demopaja is a demo [1] authoring tool. The motivation to write such an application has come from the frustration of composing demos by hand using either super-kewl scripting systems or a plain code approach. There are many free or commercial applications for creating data used in various parts of the demo (such as trackers to make the music, 3D modeling programs to make the cool 3D scenes, and painting programs), but until this date there has been no application designed to help the final phase of the demo making: demo composition.

To get the most out of Demopaja it is good to know the Demopaja basics. A demo is made of multiple layers. Layers are used to group multiple effects together which form a part of a demo. Another purpose for layers is to provide an easy and efficient (from the programmers point of view) way to hide several effects at once. Layers come in very handy when you have to move several effects across the timeline; if a layer is moved, all the effects inside it are also moved.

Fig 1. The hierarchy of a demo in Demopaja architecture.

All the visual output is done via effects. The name effect was chosen because individual components in demos are usually referred as effects. An effect can have many parameters which are organised in gizmos. The amount of gizmos inside an effect depends on the type of the effect. Gizmos are used only to group parameters and to make the user interface more organised. Gizmos usually have names such as "Transform" or "Attributes". A Gizmo called "Transform" could for example contain parameters for the position, scale and rotation of an effect. "Attributes" gizmo could have parameters for the effect color or file-parameter for the bitmap used in the effect.

Most of the demo editing is done by modifying the parameters. Parameters can be animated using a technique called keyframing. The user can create a keyframe and set its parameter in each frame in the timeline. The user can also select how values are interpolated between keyframes.

The visiblity of a layer or effect is controlled via Time Segment. Time Segment can hold several keyframes which form segments. Visible segmets are shown in the timeline and during the visible segments effects are rendered. The visibility is hierarchial, so if a layer is not visible neither are any effects inside it.

The demopaja system is made with extendability in mind. All the effects are loaded from plugin DLLs. Users can write their own plugins to achieve any visual impact they desire. The basic set of plugins which comes with demopaja is just meant to show off what can be done and to be examples for users who want to use Demopaja. All users are encouraged to write their own set of plugins and to convert their existing effects to Demopaja plugins. That way we can hopefully assure some originality in demos in the future and prevent all demos looking the same just because they are assembled with the same authoring tool.

[1] In this documentation a demo is understood to be a realtime "interpassive" demonstration, usually made by a group or a member of the demo scene. For more information and recent demos can be found at scene.org. Also www.hugi.de/lintro.htm has nice introduction to demo scene.

Copyright © 2000, 2001 Moppi Productions