Flats

  • a multi panel display with shadow prime allowing for smooth texture fading
  • inertial movement
  • centre symmetry movement
  • smooth textures across combinations of panels multiple panels
  • realistic curtain effects
  • squish mode to withdraw panels without exceeding the frame
  • smooth colour changing
  • operation using a seperate image server
  • image sequence mode using predefine (or user defined) change effects – including but not limited to fade through black, spins, delayed spins, fades.  Multiple images can simultaneously be spread across multiple flats
  • resize commands
  • shift left/right and up/down operation
  • auto panel build, panels are automatically generated and sized in symmetric left/right ratios accord to the specified conformation
  • multiple panel types
  • multiple conformations, auto build conformations and dynamic conformation changing
  • the flats are fully drum capable elements and can be created and moved by the standard drum commands, red by the drums rezzer, the drum can generate commands to synchronise flat operations with other drum operations
  • 8 stage adjustable automatic texture preloader

Command Set

Format

<panel selector> <command>do;
<track selector> cycle {command *[command]*}do;

  • where:
  • Track selector is the name of a track
  • Command is a command of th appropriate form
  • panel selector – Each panel in a set has a unique identifier, if there i an odd number of panels, the centre panel is panel 0, to the left and right of this are panel 1, then panel 2 and panel 3, etc. Panels to the left of centre are negative so -2, for example, panels to the right of centre are positive so +4, for example.  Specifying only the numeric part implies left and right matching pairs of panels.

In general commands look like:

<panel> <command> <data>;
where panel is the panel identifier, 1, 2 +3, -4 etc or some combination separated by : , for example, 1:2:-3

Commands are queued, processing is started with the do; command which may be included with the command or sent sometime later. Multiple commands are executed in sequence unless  written as part of an enclosing cycle {}, in which case they will execute in parallel whenever possible.

Cycles

A cycle has this form

cycle 20 {}

commands inside the {} execute in a time set by the cycle time, 20 in this example, and execute properly in parallel whenever possible. Commas which must execute in sequence share the cycle time.

Turn

Turn the selected panels to the specified angle, the angle is absolute, left and right will reflect the others movement, for example:

t2 cycle 20 {1:2 turn -45;3 turn +45;}do;
panels 1 and 2 and their matching left/right partners will turn 45° and panel 3 (+3 and -3) will turn 45°, the movement will take 20 seconds and all panels will move together.


Flat commands

To

Raise or lower one or more panels. ‘To’ has the following form:

<selector> to <position>;
where selector selects which panels to move and position sets the height to move them to. Height is specified as a percentage of the span height set as part of the tracks setup car. Typical 1 span is 10m so 10% of this sets 1m.  By design 100% is fully lowered and 0% is fully raised. For example:

t2 1:2:3 to 50;
will move panels 1, 2 and 3 on track t2 (on both the left and right sides) to height 50%.

t2 cycle 20 {1:3 to 0;}do;
will fully raise panels 1 and 3 leaving panel 2 where it is.

Shift

Shift os the horizontal counterpart to to and moves the selected panels left and right

Squish

Squish is equivalent to to with the exception that as the panel are raised their ties is reduced and their textures adjusted so that they appear to vanish.

Colour

Colour sets the colour of one or more panels.

<selector> colour <colour> <face>where;
<colour> = <red,green,blue> | #RRggBB | #<a colour defined in the server definition file>
<face> = F B E P S R in some combination
F-> front face
B-> back face
E-> edges
P-> primary, the currently active panel prim (see note 2)
S-> secondary, the currently inactive panel prim
R-> interpret F and B as whichever face is currently front facing (see note 1)

note 1
Normally front and back a fixed faces on the panels, this is easy to understand but can be complicated in use, Adding the R face tag means F and B are properly interpreted based on the panels orientation.
note2
Each panel consists of two prime, one is active on isn’t, laloading and texture onto the inactive face and then exchanging the active and inactive prime allows the texture to appear in several interesting ways, for example:

T2 cycle 10 {1:2 colour #red F:S;1:2 flip;}do;
will load red onto panels 1 and 2 front and secondary faces an then slowly exchange the primary and secondary prime.  When viewed the colour appears to fade in.

Texture

Texture is the same as colour except that a texture is loaded other than  solid colour.

When a texture id detected the texture load is automatically routed through the preloader and execution of the rest of the command is delayed until the preload finishes and the texture is declared “available”.  This maintains proper synchronisation between texture lads and  any other commands which might be specified at the same time.

When a texture is applied across multiple faces (1:2:3, -1:-2, etc) then the texture is properly spread across the specified faces, Its quite easy to load multiple textures onto multiple faces all with the same command (they go through the preloader together so there isn’t an extra real delay). For this to work the texture should be applied to contagious faces.

There is an extra parameter which can be applied which will force the texture to be loaded across the whole track without any other texture adjustment, this command is necessary if, for example, you need to apply a curtain texture.

Spin

Spin is the same as turn except that the turn is based on the current angle.

Retract

Retract with shift, one or more, panels backwards or forwards relative to the track by the specified distance.

<selectorretract <distance>;

Scale

Scale will change the size of one or more flats according to the specified size, for example:

<selectorscale <x,y,z>;
where x,y and z are the new sizes

For example:

T2 1:2:3 scale <1,1,1>;
will transform all 6 panels into cubes of side 1m

Flip

Exchange the role of the primary and secondary prime for the specified panels

For example 1:2 flip;

Usually this would be used as part of a texture or colour load and used as a command within the same cycle, for example:

cycle 30 { * texture myTexture F:S;* flip;}do;
which will load texture ‘myTexture’ properly aligned across the front faces of all the secondary panels, when this is complete all the panels will start a smooth ‘flip” whereby the primary panels fades out and the secondary panel fades in.  This will take the remainder of the cycle time, 20 seconds, remains after the texture load – which will be the bulk of the cycle.  The texture load will automatically run through the preloader before being applied to the panels and the main command will wait for the preload to complete

 


Track commands

Build

Rebuild the flats using the current conformation.An optional second parameter can be used to specify a different prim for the panel, by default this is a plain rectangle.

Delete

Delete the panels leaving only the track

Conformation

Change the conformation of the track, i.e. the number of flats and the relative size of each.  The conformation is specified as a series of “.” delimited numbers. Each number represents a panel and the size of the number represents that panels relative width.  So, for example ‘1.1.1.1.1’ would generate 5 equally sized panels, ‘1.5.1’ would generate 3 panels with the centre panel 5 times the width of the two outer panels which are both the same width.

Show Using

Show using will show a sequence of textures either once or repeating using a specified display cycle.  this cycle can either be included with the common or it the command can refer to a cycle defined in, and downloaded from, the image server, and contained within its selected and loaded definitions file. For example:

show T1:T2:T3 using sd
which will show textures T1, T2, and T3 using the cycle called SD which is contained in the image server definitions file.

The display cycle used may show more than one texture at a single pass or a, in which case, textures are pulled off the input list by the cycle as required.  If the intuit list is terminated with’LOOP’ then the list will endlessly repeat.  Either start a non repeating cycle to stop or send an abort command to the track. Fo example:

show T1:T2:T3:LOOP using cycle 20 {-1:-2 texture $ B:R;=1:+2 texture $ B:R;* spin 180;}
which will endlessly show 3 textures, two at a time, one across panels-1:-2 and one across panels +1+2.  the texture will be loaded onto the rear side of the track and revealed by the panels turning through 180°. Both textures will run through the preloader together.

Align

Align or realign the track, all panels move to their start positions start sizes and start orientations

 

Names

A track is a collection of flats, tracks are name in their setup notecard, commands for  specific track are prefixed with the track name. The track is the overall root prim.

Flats are named by setting their name in the description field of the flat. The name of the overall track (the collection of flats) is set in setup notecard for the track. The track prim is also the root prim.

Flats are named numerically, when facing the front the flats to the left of centre are negative numbers, the flats to the right of centre are positive numbers.  If there are an odd number of flats then the centre flat is number 0 (zero).  If there are an even number of flats then there is no centre flat. Lower numbered flats are towards the centre, higher numbers flats are towards the edge. If a flat name has an explicit + or a – sign then either the left or right hand flat of that name is selected, if no sign is used then left an right hand flats are selected in matching pairs.

Flats are selected  by adding their name to the start of the flat command, for example:

myTrack 1:2`;-3 turn 45;
which will turn flats -1, +1, -2, +2 and -3 45 degrees.

Some commands are not related to any flats, these look like:

myTrack build;

Commands which are flat related command specify the flat or the flats the commands are destined for at the start of the command,

The centre most flats have a name/number of (-1, 1) the next outermost are numbered (-2, 2) and so on.


 

Show Using

Show Using will display a single or a list of textures once or in a continuous cycle across one or more flats in almost any transition style and pattern. The transition style can include fade, fade through white, fade through black, fade through any colour or colours, any combination of spins which can themselves either be synchronised or delayed. In addition any other flat command can be used as part of the transition.

Image Server

The imager sever centralises image handling, transition handling for show image, and colour definitions.  image server data is loaded from a notecard suing the image server read command:

read <definitions file>;

For example:

read d1;
which will load data from file d1 and transmit it to all tracks.  Multiple definitions files can be stored in the server and a performance specific one loaded just prior to use


Image server commands

Define

make a definitions by command and transmit it to the tracks:

define <key>=<value>;
where key is the thing which has the value

For example:

define picture1=`’a texture asset key’;
white=ffffff;
blue=0000ff

Load

Tbd