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

3,511 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,511
On SlideShare
0
From Embeds
0
Number of Embeds
2,275
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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
  • 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 />

    ×