Successfully reported this slideshow.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

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 />

Editor's Notes

  • 3D models, Primitive (Box, Cylinder, Cone, Sphere, Plane), Camera, Shader, Video, Effect (particles), Script, Trigger, Background, Plugins, Widgets, Anchors, Timelines, Lights
  • Crane demo
  • Piano demo, HQ demo (behaviour based capture) show codec acquisition
  • Two main goals: Better looking, more realistic avatars. Reusable way of generating them
  • Demonstration of default animation + override animation
  • Provides an avenue into the virtual world ecosystem with zero-barrier to entry
  • ×