SPi-V engine

The SPi-V engine (pronounced 'spiffy', short for Shockwave Panorama Viewer) is the first publically available, cross platform, hardware accelerated panorama viewer. It is built on Adobe's acclaimed Shockwave 3d platform. For more information of the SPi-V engine, see the fieldOfView website. For documentation on how to use the SPi-V engine to display panoramas, visit the SPi-V developers site.

SPi-V is under active development. The latest version is available from the SPi-V developers site:


Summary of changes in the most recent releases of the engine:

SPi-V 1.4.9

Released: 04/20/2009


  • Works around the issue that Firefox 3 for OS X draws 3d content vertically offset
  • Improves text rendering quality in Shockwave 11.5

SPi-V 1.4.8

Released: 05/22/2008


  • The _scenes_* lists would not stay in sync with the current scene, see here
  • Fixed compatibility with Director/Shockwave 8.5

SPi-V 1.4.7

Released: 03/27/2008


  • Works around a bug in Shockwave 11 for OS X, which prevents earlier versions of SPi-V to run on Shockwave 11 for OS X
  • Fixes preview layers for uielements
  • Fixed a bug with value="=..." syntax
  • Code optimisations

SPi-V 1.4.6

Released: 03/07/2008


  • geturl action supports url='=...' syntax
  • .aspx files are accepted as xml
  • fixed a strange condition where finished downloads could be processed multiple times
  • minor preparations for Shockwave 11

SPi-V 1.4.5

Released: 02/12/2008


  • introduces XML change to camera dynamics node
    There was a conflict in names between zoomspeed for the current zooming rate and the relative pace at which zoom 'happens'. This conflict has been lifted.
  • fixes pan & tilt bug when fov > pan/tilt range
  • fixes zoom set through toolbar button
  • adds _plugin object to expose html parameters
    Shockwave allows you to add a couple of specific parameters to the HTML of your pages, inside the object/embed tag. These can now be read by SPi-V. eg:


    The _plugin object is only available when running SPi-V in a browser or other plugin environment.

SPi-V 1.4.4

Released: 01/10/2008


  • Progress-bar did not have correct contrsting color
  • Loading images in simple mode when using SPi-V as a sprite in Director was broken
  • Display did not update when swiching scenes when using SPi-V as a sprite in Director
  • Minor changes facilitating upcoming extensions

SPi-V 1.4.3

Released: 12/18/2007


  • added ability to set type, hfov, vfov, hoffset and voffset of panoelements using setProperty
    Note: this is an 'expensive' operation which may affect performance if used extensively (eg every frame, using a ramp)
  • added settable disablenavigation and disablekeynavigation properties to _camera object
  • fixed a problem when default.xml is not a valid xml document
  • fixed a problem with very small panmin/panmax or tiltmin/tiltmax ranges in cameralimits
  • fixed a problem with getURL when referencing an internal member
  • fixed color="_foreground" in matte layer nodes
  • minor code optimisations

SPi-V 1.4.2

Released: 10/26/2007


  • fixed: error when using text as alpha in layers
  • fixed: upscaling when adaptive texture scaling has kicked in
  • fixed: interupts for ramps would sometimes malfunction
  • fixed: setting blend to "0" would sometimes leave a 'residual' blend
  • fixed: resources that are referenced multiple times are downloaded/imported only once
  • fixed: downloader progress bar color was always white
  • fixed: changes to layers (such as setting 'text' property) that affect the dimensions of the layer would result in corrupted display of the layer
  • fixed: support for urls with the javascript: protocol
  • added: panogroup/uigroup 'enabled' property disables/reenables all elements in the group
  • added: color="_foreground" in layers
  • added: getProperty() call has a return value when called through evalScript().
  • added: added getProperty to list of valid API functions when calling through LocalConnection object or evalScript.
    Note that LocalConnection messages have no return value, and the evalScript method is not available for Firefox and Safari

  • changed: reimplemented 'preview' layers
  • changed: getURL with target="_spv" forces SPi-V to open the url, instead of passing to the browser
  • changed: 'Scene ready' is not sent again if a uielement or panoelement gets rebuilt
    changed: code optimisations

SPi-V 1.4.1

Released: 08/20/2007


  • under some circumstances hardware acceleration would not be used, resulting in choppy performance
  • the 'blend' property of panoelements and uielements was write-only
  • ramp wrapping; implemented minvalue and maxvalue

SPi-V 1.4

Released: 07/16/2007


  • changed: SPi-V is now free to use in simple mode, without branding.
  • added: Support for directional, streaming sound
  • added: Lists, with optional linear or spline interpolation
  • added: Variables
  • added: Support for 'hitarea' layer
  • added: Support for gradients in layers
  • changed: Improved performance of downloader
  • added: getproperty/setproperty can now get/set values that persist through scene changes
  • changed: SPi-V is now more or less fps independant
  • fixed: improved performance building scenes
  • fixed: memory leak switching between scenes extensively
  • changed: 'about' and 'debug' window are now activated using CTRL+Alt resp. Command+Option


fieldOfView grants you a limited non-exclusive license to use the free version of the SPi-V engine free of charge.

You may not reverse engineer, de-compile or disassemble the SPi-V engine. fieldOfView shall retain title and all ownership rights to the SPi-V engine.

The SPi-V engine is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties.

The free version of the SPi-V engine may be freely distributed provided that it is not modified or renamed and accompanied by the the original readme.html document, and provided that no fee is charged (except for any reasonable fees necessary to cover costs of distribution media).


The SPi-V engine is provided "as is" and without warranties of any kind. In no event shall the author be held liable for any damages whatsoever arising from the use or inability to use the software.