Skip to content

HTML 5 Viewer MVP Features

David Daeschler edited this page Aug 25, 2016 · 2 revisions

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

  • J2K → JPG (openjpeg, kakadu, csj2k)

    • Check caching layer first