Difference between revisions of "Roadmap"

From Sirikata Wiki
Jump to navigation Jump to search
(Merged two roadmaps, culled finished or out of date entries, added some newer ones. Reorganized into scheduled, ideas, and long term)
Line 1: Line 1:
''This is the roadmap for summer 2011 and beyond''  
+
''This is the roadmap and brainstorm for development''
  
[[Revised roadmap.  6.7.2011]]
+
==Scheduled Tasks==
  
==Before Spring 2011==
+
==Ideas==
"These things are needed before undergrads start working with the system, may be as part of their independent study."
 
  
* <del>Scriptable UI</del>
+
===Deployment===
* <del>placement UI</del>
+
* Standardized (checked in) monit scripts
* application dev guide
+
* Allocate nodes for space servers, public OHs
* lang guide
+
* Graphite for the public space
* machines
+
* Backups of OH data
** cassandra/CDN
+
* CSeg back in working order? Probably hasn't been tested in awhile, and we need to improve the way we manage the pool of available servers, i.e. make it truly dynamic.
** space servers
 
** OHs
 
** students
 
* <del>emerson error reporting</del>
 
* <del>emerson rebooting objects</del>
 
  
 +
===Demo World===
 +
* Repository for world-specific scripts
 +
* Scripts for building into package (i.e. all the data required to support [[Sirikata URIs]]
 +
* Get a few good, tested avatars on the CDN and get the default demo avatar to use these simple animations well
  
==Before Summer 2011==
+
===System Features===
 +
* Space
 +
** Aggregate upload to real CDN
 +
** Physics improvements -- get avatars on terrain working well
 +
** Generate collision event messages for objects, maybe based on subscription request
 +
** Click and drag's interaction with physics (and, more generally, scripting position and velocity while physics is on) (both space & object host).
  
*mesh processing for rendering performace
+
* CDN
*mesh upload the complete pipeline
+
** OAuth API support to enable aggregate upload
*pycollada dev ( library for reading collada files)
+
** Expose progressive meshes
**file save
 
**filter pipelines
 
  
*OGRE render perf
+
* OH
*<del>non CRAQ OSEG</del>
+
** Progressive mesh loading
*multi server deployment ( mostly testing)
+
** Improve Emerson storage -- make it much easier to interface and get a persistent object
**scripts
+
** Improve object manipulation interface (could be in deployment specific code, i.e. under Demo World)
**monitoring
+
** Object migration between OHs
*Emerson runtime/compiler bugs (not memory leaks)
+
** Fix closures/provide full snapshotting (timers/register handlers/etc)
*Object storage
+
** libmesh filters should not strip animations (eg. check if joints before collapsing two vertices).
*allocate objects on remote OH
+
** Playing multiple animations at once (blend/interpolation)
*Platform developers' guide
+
** Exposing physics collisions to Emerson.
 +
** Fix Gui isolation
 +
** Better OH connection failure handling
 +
** Improvements to download planner -- has basic sanity checks (max objects, refuses to load too many textures, meshes, but we could do better planning/prioritization)
 +
** Reduce Emerson memory usage
  
 +
===Documentation===
 +
* Storage tutorial
 +
* Sandbox tutorial
 +
* Getting started with demo, maybe just update getting started for users since a lot of steps can be avoided when someone provides the configuration for you.
 +
* Simple demo videos showing how to join and interact with the world/other users.
  
==Nice to have in Summer 2011==
+
===Other===
 +
* Improve release builds -- get end-to-end scripts checked in and have someone new do a build.
  
*Emerson Ajax feature
 
*animations
 
*basic physics
 
*stats service with web interface
 
*scripting sessions
 
*emerson regressions tests
 
*transferring entities between OHs
 
*Windows build
 
** <del>buildbot restored to working order</del>
 
** binary distribution
 
 
  
==Beyond summer 2011==
+
==Long-term Goals & Research==
*Audio
+
* Add audio support (purely OH-based to support, e.g. simple sound effects and local voice chat, then consider adding mixing support to the space server).
*Animation
+
* Load balancing objects across object hosts
*Authentication
+
* Distributed physics -- extend physics to work with objects including boundaries
*Emerson memory issues
+
* Mesh/object aggregation
*migrate entities between spaces
+
* Multicast
*migrate presences between entities
+
* New transport abstractions targeted at VWs (e.g. last reliable)
*better aggregation approach (some implementation things)
 
*resource contraints on scripts
 
 
 
==Research Topics ==
 
 
 
*Distributed spatially mixed audio
 
*Distributed Physics
 
*Distributed PInto
 
*Pinto by num of objs
 
*Space Server Splitting
 
*Multicast
 
*Trasport protocols for VW
 
*Emerson/Language
 
*object storage -> migration etc
 
*better aggregation approach
 
 
 
 
 
== Rest ==
 
 
 
*Audio
 
*Animation
 
*Authentication
 
*Emerson memory issues
 
*migrate entities between spaces
 
*better aggregation approach (some implementation things)
 
*resource contraints on scripts
 

Revision as of 02:00, 10 November 2011

This is the roadmap and brainstorm for development

Scheduled Tasks

Ideas

Deployment

  • Standardized (checked in) monit scripts
  • Allocate nodes for space servers, public OHs
  • Graphite for the public space
  • Backups of OH data
  • CSeg back in working order? Probably hasn't been tested in awhile, and we need to improve the way we manage the pool of available servers, i.e. make it truly dynamic.

Demo World

  • Repository for world-specific scripts
  • Scripts for building into package (i.e. all the data required to support Sirikata URIs
  • Get a few good, tested avatars on the CDN and get the default demo avatar to use these simple animations well

System Features

  • Space
    • Aggregate upload to real CDN
    • Physics improvements -- get avatars on terrain working well
    • Generate collision event messages for objects, maybe based on subscription request
    • Click and drag's interaction with physics (and, more generally, scripting position and velocity while physics is on) (both space & object host).
  • CDN
    • OAuth API support to enable aggregate upload
    • Expose progressive meshes
  • OH
    • Progressive mesh loading
    • Improve Emerson storage -- make it much easier to interface and get a persistent object
    • Improve object manipulation interface (could be in deployment specific code, i.e. under Demo World)
    • Object migration between OHs
    • Fix closures/provide full snapshotting (timers/register handlers/etc)
    • libmesh filters should not strip animations (eg. check if joints before collapsing two vertices).
    • Playing multiple animations at once (blend/interpolation)
    • Exposing physics collisions to Emerson.
    • Fix Gui isolation
    • Better OH connection failure handling
    • Improvements to download planner -- has basic sanity checks (max objects, refuses to load too many textures, meshes, but we could do better planning/prioritization)
    • Reduce Emerson memory usage

Documentation

  • Storage tutorial
  • Sandbox tutorial
  • Getting started with demo, maybe just update getting started for users since a lot of steps can be avoided when someone provides the configuration for you.
  • Simple demo videos showing how to join and interact with the world/other users.

Other

  • Improve release builds -- get end-to-end scripts checked in and have someone new do a build.


Long-term Goals & Research

  • Add audio support (purely OH-based to support, e.g. simple sound effects and local voice chat, then consider adding mixing support to the space server).
  • Load balancing objects across object hosts
  • Distributed physics -- extend physics to work with objects including boundaries
  • Mesh/object aggregation
  • Multicast
  • New transport abstractions targeted at VWs (e.g. last reliable)