Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Technology Behind VastPark<br />Craig Presti, CTO<br />craig@vastpark.com<br />@craigomatic<br />
Disclaimer<br />Some experimental features will be shown…<br />
FLEXIBLE<br />
How VastPark works<br />IMML Host<br />(ie: WorldServer)<br />IMML Renderer<br />(ie: VastPark Player)<br />User<br />Medi...
Technologies<br />
Source Code<br />http://vastpark.svn.cvsdude.com/public/trunk<br />
Specifications<br />We don’t find one that works, we create it<br />Royalty free, open specification license:http://www.va...
Immersive Media Markup Language<br />
SceneGraph Hierarchy<br />
Scriptable DOM<br />IMML<br /><PrimitiveName="Prim"Position="0,0,0"Type="Box"/><br />VastScript<br />e = scene:getelement(...
Network Enabled Elements<br />
HTML functionality<br />Web Element<br />Spatially Presented<br />Web Element<br />Docked Flat<br />
Video functionality<br />Video Element<br />Spatially Presented<br />Video Element<br />Docked Flat<br />
Audio functionality<br />Spatial Audio<br />Audio Properties and Methods<br /><ul><li>Pitch
Volume
Streaming
GetSpectrum
GetSampleRate</li></li></ul><li>Texture Functionality<br />var t = ImmlElementFactory.CreateTexture();<br />t.ID = Util.Ge...
Drawing API<br />Line<br />Rectangle<br />Arc<br />Ellipse<br />
Plugin Extensibility<br /><Plugin Name=“MyPlugin" Enabled="True" Source=“my.plugin"><br />    <Parameter Key=“Uri" Value=“...
Plugin Framework<br />Available via nuget<br />Ships with the Player and WorldServer<br />Recommended way to write Plugins...
Portable IMML<br />Distribute a virtual world like a PDF!<br />Supports URI impersonation<br />Both single-user and multi-...
Widgets<br />A type of IMML container<br />Embeddable within other IMML contexts<br />
Continuum<br />Continuum captures state changes<br />Binary file format<br />Supports forward and backwards playback and r...
OpenAvatar<br />
OpenAvatar<br />
LIXA<br />Supports groups of bones, allowing specific animations to play on specific bone groups independently.<br />Human...
Metaforik<br />Entertains the idea of media as a concept<br />Supports for multiple representations of that concept<br />P...
Distributed Processing<br />Player<br />WorldServer<br /><IMML/><br /><IMML/><br />CLIENT<br />SERVER<br />Client Plugin<b...
World Deployment<br />Two primary output options:<br />Portable IMML (like a PDF)<br />IMML (like a web page)<br />Many ho...
Upcoming SlideShare
Loading in …5
×

La Cantine Presentation, Paris, 10th June 2011

4,008 views

Published on

Published in: Technology
  • Be the first to comment

La Cantine Presentation, Paris, 10th June 2011

  1. 1. The Technology Behind VastPark<br />Craig Presti, CTO<br />craig@vastpark.com<br />@craigomatic<br />
  2. 2. Disclaimer<br />Some experimental features will be shown…<br />
  3. 3. FLEXIBLE<br />
  4. 4. How VastPark works<br />IMML Host<br />(ie: WorldServer)<br />IMML Renderer<br />(ie: VastPark Player)<br />User<br />Media Storage<br />(ie: Amazon S3)<br />Authentication<br />(ie: VastId)<br />
  5. 5. Technologies<br />
  6. 6. Source Code<br />http://vastpark.svn.cvsdude.com/public/trunk<br />
  7. 7. Specifications<br />We don’t find one that works, we create it<br />Royalty free, open specification license:http://www.vastpark.org/wiki/1/Open_specification_license<br />LIXA<br />
  8. 8. Immersive Media Markup Language<br />
  9. 9. SceneGraph Hierarchy<br />
  10. 10. Scriptable DOM<br />IMML<br /><PrimitiveName="Prim"Position="0,0,0"Type="Box"/><br />VastScript<br />e = scene:getelement(‘Prim’)<br />e.position = vector3(1,2,3)<br />All scene elements have globally unique names within that context.<br />
  11. 11. Network Enabled Elements<br />
  12. 12. HTML functionality<br />Web Element<br />Spatially Presented<br />Web Element<br />Docked Flat<br />
  13. 13. Video functionality<br />Video Element<br />Spatially Presented<br />Video Element<br />Docked Flat<br />
  14. 14. Audio functionality<br />Spatial Audio<br />Audio Properties and Methods<br /><ul><li>Pitch
  15. 15. Volume
  16. 16. Streaming
  17. 17. GetSpectrum
  18. 18. GetSampleRate</li></li></ul><li>Texture Functionality<br />var t = ImmlElementFactory.CreateTexture();<br />t.ID = Util.GenerateUniqueID();<br />t.SetParkEngine(_ParkEngine);<br />t.Load(bytes);<br />t.WritePixels(pixels);<br />
  19. 19. Drawing API<br />Line<br />Rectangle<br />Arc<br />Ellipse<br />
  20. 20. Plugin Extensibility<br /><Plugin Name=“MyPlugin" Enabled="True" Source=“my.plugin"><br /> <Parameter Key=“Uri" Value=“http://example.org" /><br /></Plugin><br /><Trigger Event=“Loaded" Target=“OnLoad" /><br /><Script Name=“OnLoad" Language="Lua"><br /> function main(obj, args)<br />myplugin:dosomething()<br /> end<br /></Script><br />publicclassMyPlugin : IPluginComponent<br />{<br />publicstring Uri { get; set; }<br /> publicvoidDoSomething()<br />{<br />//do work<br />}<br />}<br />
  21. 21. Plugin Framework<br />Available via nuget<br />Ships with the Player and WorldServer<br />Recommended way to write Plugins for VastPark<br />
  22. 22. Portable IMML<br />Distribute a virtual world like a PDF!<br />Supports URI impersonation<br />Both single-user and multi-user scenarios are supported<br />Supports encryption<br />
  23. 23. Widgets<br />A type of IMML container<br />Embeddable within other IMML contexts<br />
  24. 24. Continuum<br />Continuum captures state changes<br />Binary file format<br />Supports forward and backwards playback and random seek<br />Designed to be streamed over a network<br />Supports arbitrary capture formats<br />ICodec<br />
  25. 25. OpenAvatar<br />
  26. 26. OpenAvatar<br />
  27. 27. LIXA<br />Supports groups of bones, allowing specific animations to play on specific bone groups independently.<br />Human readable layout, making it easy to copy and paste animation sequences from one file to another.<br />
  28. 28. Metaforik<br />Entertains the idea of media as a concept<br />Supports for multiple representations of that concept<br />Permissions<br />Discovery<br />
  29. 29. Distributed Processing<br />Player<br />WorldServer<br /><IMML/><br /><IMML/><br />CLIENT<br />SERVER<br />Client Plugin<br />Server Plugin<br />3rd Party Service<br />
  30. 30. World Deployment<br />Two primary output options:<br />Portable IMML (like a PDF)<br />IMML (like a web page)<br />Many hosting options:<br />WorldServer (multi-user, single user)<br />IIS, Apache, etc (single-user)<br />FileServer(single-user)<br />Local HDD (single-user)<br />
  31. 31. TeamFlex<br />
  32. 32. WebGL & HTML5<br />Being heavily promoted by Googlehttp://www.chromeexperiments.com<br />OpenGL 2.0 ES<br />HTML5 applications native in Windows 8<br />WebGLuncertainty<br />
  33. 33. Resources<br />http://www.vastpark.org<br />http://theparkisvast.com<br />craig@vastpark.com<br />@craigomatic<br />

×