This started as as relatively simple set of scenes based on viewing clips
through the doorways and windows of a few rather ordinary houses,  though
whether they are just ordinary houses or "houses of ill repute"  is  left
to the viewer to decide.

Then I got carried away - not only by increasing the range of house types
but also by varying the ways in which the camera was moving, or rather by
moving the scene relative to the camera which has the same effect but  is
more flexible.

Currently there are the following groups of scenes in this set:

   A - French Country House (Maison Callipyg)

   B - Dutch Suburban House (Huis Callipyg)

   C - English Georgian House (Callipygia House)

   D - English Suburban House (69 Callipygia Drive)

   E - English Country Cottage (69 Callipygia Lane)

   F - English Farm House (Callipyga Grange)

   G - Irish Pub and Hotel or Bookshop (69 Callipyg Street)

   H - Spanish Courtyard House (Casa Calipyg)

   I - German Painted Inn (Calipygia Haus am Lorelei)

   J - German Town House (Callipygiastrasse 69)

   K - German Gate House (Burg Callipyg)

   L - German Palace (Callipygia Palais)

   M - English Stately Home (Callipygia Hall)

   N - American Suburban House (69 Callipynian Vistas)

   O - Italian Villa (Villa Callipygia)

   P - North East American Cottage (Callipygia Cottage)

   Q - Irish Cottage

   Q - Swiss Chalet (Hotel Callipygia)

   S - American Log Cabin (Callipygia Cabin)

   T - American Porch House (Callipygian Meadows)

   U - English House Block (69 Callipygia Avenue)

   V - Dutch Houseboat

   W - American Late Gothic Mansion

In each case the scene comprises a house facade with a number of  windows
and doors through which the contents of various rooms can be seen. A girl
dances in each room.

The room contents could have been implemented by having two  versions  of 
each house facade, one having transparent areas for the windows and doors
and the second providing the contents of each room.  Instead I decided to
use smaller images for each room and place them individualy in the  scene
files.  The  original idea was to make the room selections at random from
a pool of rooms, but in the end I did not do this though may do so later.

The same facade has been used for both the Irish Pub and Hotel scenes and
the Irish Bookshop scenes - the only difference being the room contents.

Because I have reused a very small selection of rooms there is  a  common
pattern to the interior decoration schemes of the houses  -  perhaps they
are part of a franchise like McDonalds or Starbucks.

In each case there are three variations of each scene, these being

   A static view or a simple zoomed or panned and
   zoomed view of the of the house but which does
   not provide individual close-ups of each room.

   A detailed scan that travels from room to room
   providing a close up view of each in turn.

   A version that scans through binoculars.

In a few cases both a static view and a more complex pan and zoom version
of the scene is provided.

The details of how the scans are impemented differs from house to house.

The scene names each begin with a single letter that identifies the house
facade has been used followed by a single digit identifying which of scan
variations has been used.

   0 or 5 - Static view.

   1 or 6 - Simple zoom or pan and zoom.

   2 or 7 - Detailed scan.

   3 or 8 - Binocular scan.

these two characters are followed by a description of the house and  then
by set of parentheses around one or two numbers. If there are two numbers
then they will be separated by a hyphen.  The first, or only, number is a
the count of the positions at which a clip is played and if there is only
one number then this is also number of clips used in the scene.  However,
if there is a second number then this is the number of  clips  used  with
the difference between the two numbers being made up by the use of cloned
clips in the scene. Clones are used because not all systems (including my
own) can reliably handle large numbers of independant clips, but are able
to handle large numbers of clones of clips. It is recommended that any of
the scenes that cause trouble due to large clip counts are deleted.

All of these scenes are essentialy two dimensional but in many cases they
use a 3D camera as that provides more ways to model zooming. 

In most cases the only difference between the scans of a house  with  and
without binoculars is simply the presence or absence of a  mask  modeling
the field of view of the binoculars.  However, in the case the the German
Town House and German Palace scenes the scan schemes also differ.  Though
in each case the schemes differ only in the values of a small  number  of
internal parameters the resulting scanning patterns are very different.

For the French Country House scenes the scanning scheme is based on a set
of non-cyclic movements all starting at time zero but with different stop
times. Each individual movement starts slowly and has its  maximum  speed
just before it stops. As a result when a movement is ending  movement  is
quite rapid but suddenly slows down being dominated by an early  part  of
the next movement -  i.e. things start slow, speed up as they near one of
the intermediate stopping points,  slow down and then repeat for the next
intermediate stopping point and so on until all movement is complete. For
this scene the intermediate stopping points, of course,  center on one of
the windows or the door.  As  this scheme does not provide for any way to
repeat the whole cycle it ends with a zoom out to provide a view  of  the
whole of the house and its occupants.

The scanning schemes for the other scenes are all based on sets of cyclic
movements and will run as long as the scene is viewed.  For  these scenes
a number of complications arose, these being

   Asymetric positions of the windows.
    
   Revealing the edge of the main image.

The first of these affects the Dutch Suburban House scenes and  has  been
overcome by careful design of the scanning components. The second is more
general and has been overcome by using one of the following techiniques

   Never zooming out e.g. Dutch Suburban House

   Using an overlarge main image e.g. The English Houses

   Extending the main image with copies e.g. The Irish Houses

For the English Suburban House there are two scanning schemes.  The first
regularly zooms in,  scans the ground floor,  and zooms out again to view
the whole house. This is repeated indefinately.  It  does not provide any
close-ups of the upper floor rooms.  The  second scanning scheme switches
between scanning the ground floor and scanning the second floor,  however
I am not entirely happy with the result. I have, as yet, not been able to
find a way to scan this house that either does not zoom in on all windows
or else spends significant time scanning uninterresting areas such as the
sky or a part of the house without windows.  The version provided does an
adequate job, but it does not cover the upper floor particularly well and
makes a brief excursion to look at the sky.

For the Spanish Courtyard House scenes the basic cyclic scan is based  on
superimposing pingpong linear motions of different frequencies such  that
for parts of each cycle the motions cancel each other out. This scheme is
also used for the German Painted Inn and German Town House scenes.

For most of these sets of scenes the houses are viewed almost straight on
and their facades appear to be parallel, or almost parallel, to the plane
of the screen. For simple flat facades it often possible to correct for a
misalignment by using GIMP, or other image manipulation program, to apply
a perpective correction transformation.  However,  the image used for the
Spanish Courtyard House shows two walls at right angles to each other, it
is not possible to correct the perpective for both. This implies that for
this house the images used for the rooms need to be rotated significantly
about the vertical axis in order that the back walls of the rooms  appear
to be parallel to the front walls.  For  the earlier houses the rooms had
all been added to the scene as separate sprites seen through the doors or
windows of the image mask used for the facade,  but  if this is done when
the rooms have been rotated about their Y axes then scanning along the  X
axis causes them to appear to rotate as the point of view changes. It was
therefore necessary to use a different means of constructing the  Spanish
Courtyard House,  this being to use a single backdrop containing the room
images. This backdrop image was itself constructed by assembling a static
scene without any clipSprites and taking screen capture.

A technique I have used in several of these scenes is to combine two sets
of triangular scans,  produced using "pingpong linear",  to produce scans
that pauses at equally spaced intervals.  This uses two nested nodes with
their scan amplitudes and periods both having the same integer ratio, for
example
   
   node { // Base scan
      animate: 50, pingpong, linear, pos 500, 0, 0
   node { // Modulate to introduce pauses
      animate: 10, pingpong, linear, pos -100, 0, 0

results in a motion which pauses at its end points and its mid point.  In
general to obtain an odd number, N, of equally spaced pauses that include
one at the mid point of the scan and one at each end the the  ratio  used
for the periods and amplitudes should be in the ratio 2*N-1.

Because the above pair of animate clauses is not centered  on  its  start
point I have often augmented them with a third that cancels the effect of
the first half of the first "ping" of the series of pingpongs,  i.e. by a
quarter of the full cycle, e.g.

   node { // Base scan
      animate: 50, pingpong, linear, pos 500, 0, 0
   node { // Modulate to introduce pauses
      animate: 10, pingpong, linear, pos -100, 0, 0
   node { // Delay start by a quarter of a cycle
      animate: 25, forward, linear, pos -250, 0, 0

this delays the scan start by half a cycle and it then  starts  from  its
mid point. The cancelling performed by the third of these animate clauses
should really also include a component to cancel out the  effect  of  the
first second animate clause but I have rarely bothered with this and have
instead corrected for it by recentering the view,  usualy  as  part of an
initial zoom in and recentering animare clase - though in the case of the
Irish Cottage scene I have done it properly.

A variation of this technique has been used in the Dutch Houseboat scenes
to make the horizontal scan temporarily reverse its direction rather than
periodicaly pause. Another variation is used for the American Late Gothic
mansion scenes where non-linear movements were used so that smooth motion
is achieved at the expense of not actually pausing.

The main lesson learned from these scenes is that while it is possible to
implement complex scanning and zooming schemes they can be awkward to set
up because changing one part of the scheme impacts all the others, any or
all of which may need to be adjusted to accomodate the change. Life would
be much simpler if it was possible to specify a sequence  of  independant
activities rather than a set of parallel activities. 
