Skip to content

Instantly share code, notes, and snippets.

@jessmartin
Created November 4, 2013 16:14
Show Gist options
  • Save jessmartin/7304995 to your computer and use it in GitHub Desktop.
Save jessmartin/7304995 to your computer and use it in GitHub Desktop.
Towards VWF 1.0
# Towards VWF 1.0
## What VWF Is...
VWF is:
- Realtime state synchronization (CORE)
- A set of drivers that support immersive experiences - 3D, audio, video and modern graphics (DRIVERS)
With VWF, you can create:
- Components that are reusable
- Applications composed of components
Therefore, VWF is NOT:
- Components created *with* VWF
- Applications created *with* VWF using VWF components
- Ecosystem that supports creating applications *with* VWF
When we talk about getting to 1.0, we're talking about getting the CORE and a few important DRIVERS to 1.0.
## VWF 1.0
### Principles
**It's already useful** - Note that Rob took the "core" of VWF, forked it, and built sandbox on top of it. The "core" of VWF is already quite powerful and robust.
**Target audience: web developers** - It's not for "everyone" just because it's 1.0. When Lockheed first evaluated using Unity, it was version 1.0. They decided it wasn't ready yet. It wasn't until version 3.0 that it met their needs. Some groups of people may decide to wait for more features before using it.
**Ship and then interate** - We don't want to hold hostage everything that has already been built by refusing to call it 1.0 until it's just a *little bit better*.
**1.0 does NOT mean "done point oh"** - 1.0 doesn't mean we'll stop working on it. 1.0 also doesn't mean we'll never work on anything else. We'll work as funding dictates.
**Focus and communicate** - The audience for the 1.0 list is for the "open source" portion of the project, to give it direction and focus, and to communicate where we're going.
### Goal of 1.0
Enable application developers to build and deploy immersive apps.
### Themes
**Documentation:** describe how to build and deploy an application on top of VWF.
- Getting Started Experience
- README
- Website refactoring
- Download/install experience
- "My first app" experience
- "Getting Started" screencast
- More complete API documentation
- Browser support
- For core
- For each driver
- Community involvement
- Push people to Stack Overflow to ask questions
- IDEA: What if *we* started using Stack Overflow to ask/answer questions?
- Open our wiki, task board, 1.0 goals to the public
- Open invitation to "office hours" call
- Kill the forum
**Core 1.0:** state synchronization should just work.
- Persistence
- Model sandboxing
- Replicate dynamically-added scripts (listeners) (Redmine #?)
- Replicate deletions from a component (Redmine #?)
**Node server:** drop Ruby server and focus our efforts on getting Node server to the level of quality of the Ruby server.
- Persistence support
- More automated test coverage
- Fix instance ID URL to match Ruby server
- Switch to node server in production
- Refactor nodeJS Serving Modules (#2890)
- Update File Caching in NodeJS to deal with YAML and JSON files and parsing (#2887)
- NodeJS Server Intermittent 500 error on admin/config requests (#2886)
- 404 page
**Deployment:** easy to deploy an app once it's built.
- Document deployment on at least one PaaS service (Heroku, Nodejitsu, etc)
- Figure out if our embedded software conflicts with the PaaS
- Document deployment on AWS / own hardware
- Pick a modern linux flavor, go to town
- Design deployment technique to deploy only minimal client/server (no examples, no website)
- See meteor's `meteor bundle`
**ThreeJS 1.0:** 3D graphic support should be awesome.
- Loading model art via JSON
- Support for MorphAnimMesh Animations via the JSON model loader
- Document how to work properly with lights:
- "What to do with lights that are loaded as part of the model, and how they interact with lights that are defined in VWF"
**Document Performance:** be able to communicate current performance capabilities.
- Stress test the system and document current limitations
## What's NOT in VWF 1.0
- Drivers
- WebRTC 1.0
- Physics 1.0
- Lesson 1.0
- Cesium 1.0
- Components
- More resuable components
- Component repository
- User interfaces for non-programmers
- Blockly integration
- Enhanced visual editor
- After-action review tools
- *Improving* performance
- Device integration
- Automating deployment - VWF Platform as a Service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment