HTML 5 Viewer MVP Features - HalcyonGrid/halcyon GitHub Wiki
HTML5 Viewer
Features for MVP
-
Prims
-
Needs
- Display all procedural prims as accurately as possible (arbiter transform, eventually may have to port to js)
- Sale, Rotation, Translation
- Updates to shape
- Updates to face color
- Updates to face texture
-
Later
-
-
Mesh
-
Needs
- All static mesh. No dynamic changes to shape or texture
- Sale, Rotation, Translation
-
Later
-
-
Terrain
-
Needs
- Terrain mesh
- At least first texture w/no blend
-
Later
- Texture blend
-
-
Camera
-
Needs
- 1st person
-
Later
- Fully adjustable/adapting
- Follow avatar
-
-
Atmospherics
-
Sun
-
Needs
- Fixed at 9 am
-
Later
- Day cycle
-
-
Fog
- Later
-
-
HUDs
- HTML5?
-
Interactivity
Clicking objects- Sit
-
Voice
Later -
Sounds
Needs - Play audio streams as directed by the server - Sound is in ogg/vorbis format and should be playable by the browser - We'll need to convert the sound asset to an ogg file -
Particle system
Needs - Just enough to do colored smoke-
Later
Full particle system emulation?
-
-
Movement
Objects-
Avatars
-
Multi-Region
Needs - No-
Later
Yes
-
-
Arbiter
Features for MVP
Prerequisites
Arbiter process
Communications Gateway
- Communications protocols
-
NodeJS (arbiter)
- To web client: socket.io (websockets)
- To simulator: net.socket (plain async TCP socket, flatbuffers)
-
C# (simulator)
- To arbiter: Async TCP socket (flatbuffers)
-
Access Layer
- Sounds (provide direct download URL on arbiter)
Transformation Gateway Process
-
Check for a scene description that's up to date
- If the sim says our babylon file is up to date, send to client
- else
- Babylon file newer than 10 mins (or base on changelist
size? If the diff is small do we regen at all?)
- Send babylon file
- Send changes
- else
-
Mesh objects: From internal collada LLSD → babylon file
- Possibly a caching layer for individual meshes in babylon rebuild
-
Prims/Sculpty → (meshmerizer) → babylon file
- Possibly a caching layer for individual prims in babylon rebuild
-
Cache babylon file in shared storage TBD
-
Send to client
-
- Babylon file newer than 10 mins (or base on changelist
size? If the diff is small do we regen at all?)
-
J2K → JPG (openjpeg, kakadu, csj2k)
- Check caching layer first