Giter VIP home page Giter VIP logo

vwf's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vwf's Issues

Windows Installer + vwf create

I’m having a couple of issues w/ the currently posted Windows Installer:

  • The installer still doesn’t pop up the readme instructions when the install completes
  • @MichaelVacirca, I noticed that you mentioned that it points to the development readme – I thought you had advocated for including the readme in the install so disconnected users could still see the instructions?
  • When I went to the cmd window and typed “vwf create AppTest” it spit out a list of errors at me (see first screenshot below).
  • When I tried again by running cmd “as Administrator” it was happier, but I still got an error at the end that prevented the folder from being created. It looks like the error is two-fold. First, it could not find VWF support files. Second, it couldn’t find the function consoleError to tell me that. (see second screenshot below)
  • Also, when I download the .exe, Chrome is all “Whoa! This is probably going to destroy your computer!”, and I have to select from the drop-down box (not immediately obvious) that I actually want to keep it. Anything we can do about that?

image

image

Website

Hi,

I could not visit virtual.wf website. Something wrong with your security certificate?

Need Help Installing VWF

I'm on a Macbook Pro. - Mavericks
Chrome browser Version 36.0.1985.143

Here's my installation process so far:

How can I properly install vwf on my Mac and run the Tutorial?

Cheers,
Darius
[email protected]

Current Issues on Development

In preparation for 0.7.0 release, the following issues on development need to be addressed:

  • adl/assetCache - does not properly replicate (legacy issue?)
  • adl/assetCacheMaterial - the second object's material is not shown. Appears to have been created on modern ID merge.
  • agi/test/polygon - errors on second client join (cannot read property length of undefined).
  • marbles - There are no marbles on the selection or solitaire table. Perhaps related to the component relative resources change? The model's source is defined in the component script.
  • humvee-lesson and radio-lesson - not properly working with the component relative resources change
  • radio - body texture only loads the first time on a fresh instance on a fresh server. Subsequent loads render solid black.
  • sandtable - Drag and drop functionality does not work (legacy issue).
  • editor (sandtable) - models tab does not populate
  • editor (sandtable) - save/load does not work on users tab.
  • solar-system - width error in console, related to the stars component materialDefinition repeat.
  • stereo - same width error as solar-system
  • test/cameraFov, test/cameraNearFar, test/CamPosX, test/CamPosY, test/CamPosZ, test/childTransforms, test/clientNotification, test/future, test/keyStates, test/lookAt, test/mouseInput, test/mousePick, test/ObjPosX, test/ObjPosY, test/ObjPosZ, test/ObjQuat..., test/ObjRot..., test/visible - the lighting on the second client is darker. Refreshing the first client uses the darker lighting.
  • test/cameraType - box is black
  • test/clientNotification - no notification on client left
  • test/JSONLoaderTest - second client monster has solid black texture
  • test/lightColor - does not work
  • test/physics - cube has black texture
  • test/point-light, test/pointlightPos... - does not work
  • test/texture - does not replicate

Add to backlog:

  • sandtable - predators jump every few frames (redmine #2868)
  • test/createDelete - does not replicate. This actually is replicating, but the duck that is deleted from the first client during load remains in the second client. Add to redmine backlog.
  • Deprecated warning - Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
  • Are particles supposed to replicate exactly?

Brainstorm list for what goes in VWF 2.0

  • Move to using github issues and add “get involved” to main site
  • Switch us to use npm for managing server add-ons (like OpenAvatar), drivers, and components?
  • Demos (visually appealing that do something interesting)
    • Very high quality game (very polished, though very small) – very fun
    • Training scenario (integrate w/ LMS and everything)
    • Create a physics demo in a pretty world
    • Complete bzflag so it’s a playable game
    • OpenAvatar
    • Games from http://www.jocly.com (would they be interesting in partnering?)
  • Brett-Victor-type level-editing interface (like Unity tools)
    • ADL Sandbox + Brett Victor
  • Performance
    • Bring in ADL’s sceneManager code as an optional three.js module (somehow)
  • Improve and demonstrate scalability
  • Add read-only access of model properties from view
  • Connect to other simulations/devices
    • WebLVC?
    • HLA bridge?
    • MSDL?
  • Switch to Y-up to conform w/ three.js

Installation broken on Mac/Linux

The current install.sh script contains this line:
VERSION=$(cat support/client/lib/version.js | support/deployment/version.sh)
which assumes that the working directory when running the suggested installation command:
curl -kL http://get.virtual.wf | sh
does contains a file ./support/client/lib/version.js.
This is very unlikely unless the installation is run from a directory where vwf is already checked out.
I was just trying a first time install and don't have any experience with the code base so I can't propose a fix, but though I let you know at least.
Best Regards,
Rainer Keller

VWF 1.0

  • Advertise
    • Complete MVP to Advertise to-do list (Issue #125)
    • Have people contact us if they want to put a demo up on our site
    • Add a blog to website w/ announcements/news
    • Add vwf twitter account that we monitor
  • Documentation 1.0
    • Redesign documentation with user experience/flow in mind, including
      • gotProperty
      • calledMethod
      • how to know when the application has loaded: initializedNode
      • dynamic mesh creation
    • Improve example apps so that they actually follow current best practices
    • Create and post Getting Started screencast
    • Complete API documentation
    • Show browser support grid (for core for each driver)
    • Point people at Stack Overflow to ask questions (have someone on team subscribed to vwf tag to watch for questions)
    • Open invitation for office hours call
    • Remove forum
  • Core 1.0: State synchronization should just work
    • Replicate dynamically-added scripts (listeners & behaviors) (PR #141, #142, #143, #144, #145, #146)
    • Design ideal persistence solution and implement it
    • Merge model sandboxing branch
    • Replicate deletions from a component
  • Node.js server
    • Fix node server bugs
      • Going to a named app (editor.vwf) still loads index.vwf on node server
      • Node server possibly reads yaml files wrong that end w/ a “:”?
      • Set up node to run in production mode
      • What else?
    • Switch to node.js server in production
    • Rewrite installation docs to focus around the node.js server
    • Refactor nodeJS Serving Modules (Redmine #2890)
    • Update File Caching in NodeJS to deal with YAML and JSON files and parsing (Redmine #2887)
    • Add a 404 page that doesn't have the vestiges of the old website
    • Can we make vwf and vwf create work well for those who pulled VWF down from github, too? (right now it needs the path to node.js to be added to the path, and it gives no errors when it fails)
  • Deployment
    • 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
    • Modularize view driver to allow: users to insert pieces into the render loop or override it completely ( for shaders, multiple viewports, etc), navigation, view interpolation, etc
  • Payload size
    • Reduce it as much as we can and then brag about it on website (look into shrinking or removing Google Closure, among other things)

vwf-apps

I can't seem to get some of the examples at https://github.com/virtual-world-framework/vwf-apps.git running. One particular sample is 'mulituser'. This is what I got from the console:

C:\vwf>node . -a ..\vwf-apps
LogLevel = 1
Serving VWF support files from C:\vwf
Serving VWF applications from ..\vwf-apps
Serving on port 3000
events.js:141
throw er; // Unhandled 'error' event
^

Error: write after end
at ServerResponse.OutgoingMessage.write (_http_outgoing.js:413:15)
at Object._404 (C:\vwf\lib\nodejs\serve.js:41:18)
at Object.Serve (C:\vwf\lib\nodejs\vwf.js:143:15)
at Server.OnRequest (C:\vwf\node_vwf.js:106:17)
at Manager.handleRequest (C:\vwf\node_modules\socket.io\lib\manager.js:565:28)
at Server. (C:\vwf\node_modules\socket.io\lib\manager.js:119:10)
at emitTwo (events.js:87:13)
at Server.emit (events.js:172:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:528:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)


vwf and vwf-apps are cloned into my c:\vwf and c:\vwf-apps respectively. Any idea?

Evaluate VWF Pong as a representative VWF application

In reviewing our current Getting Started page in our docs, there are a lot of sections that are out of date, and others that don't do a great job of introducing some of the concepts of VWF. But I really liked the way the page was driven by an example. I decided to write a new example app that we could use to:

  1. Build the Getting Started page, introducing concepts in brief and then linking to the other docs page for more info. Redmine #2917
  2. Use on the homepage as a sample app so that visitors can start playing with VWF as soon as they visit our site. Redmine #2956
  3. Use to create a screencast of building a relatively cool/complex application with VWF really quickly. Redmine #2965

I chose Pong as it can be implemented quickly and also shows off VWF's collaborative and 3D functionality well. (Yes, Google did it better).

Since we're going to be using this as an instructional app on "Getting Started" and potentially a screencast, I wanted to get feedback from folks to make sure that I'm doing things the "right" way. To that end, could you take a look over the code and leave comments if anything can be done more simply/correctly/awesomely?

@davideaster, @eric79, @stevencarr, @allisoncorey, @bcbarsness - I'm looking to ya'll to help me make this app a canonical VWF app.

Here's a Compare View of the source code. And here's a link to the repo.

Here's a few other things I thought of to improve:

Codebase

  • Move the javascript functions out of the YAML to a separate file.
  • Move "magic numbers" into properties on their respective objects.
  • Use Three.js CubeGeometry rather than collada files for all the models.
  • Move movePlayer to be a method on the player node.
  • Extract the player into a player component.
  • Have the board receive shadows from the ball and the paddle.

The Game Itself

  • Tune the Ball and Paddle speeds.
  • Click to start a new round.
  • Disable the navigation. (How??? I thought navmode: none should do it.)
  • Style the text so it doesn't look terrible.
  • Change the angle that the ball bounces at based on where it hits on the paddle.

Errors from "npm install"

Here is the npm-debug.log:

info it worked if it ends with ok
verbose cli [ 'node', '/usr/bin/npm', 'install' ]
info using [email protected]
info using [email protected]
verbose config file /homes/elenius/.npmrc
verbose config file /usr/etc/npmrc
verbose config file /usr/share/npm/npmrc
verbose caching /export/u1/homes/elenius/projects/SAVE/git/vwf/package.json
verbose loadDefaults [email protected]
info using shrinkwrap file /export/u1/homes/elenius/projects/SAVE/git/vwf/npm-shrinkwrap.json
verbose readDependencies: returned deps [ { crypto: '[email protected]',
verbose readDependencies: returned deps 'socket.io': '[email protected]',
verbose readDependencies: returned deps async: '[email protected]',
verbose readDependencies: returned deps mime: '[email protected]',
verbose readDependencies: returned deps 'js-yaml': '[email protected]',
verbose readDependencies: returned deps optimist: '[email protected]',
verbose readDependencies: returned deps 'fs-extra': '[email protected]' } ]
verbose where, deps [ '/export/u1/homes/elenius/projects/SAVE/git/vwf',
verbose where, deps [ 'crypto',
verbose where, deps 'socket.io',
verbose where, deps 'async',
verbose where, deps 'mime',
verbose where, deps 'js-yaml',
verbose where, deps 'optimist',
verbose where, deps 'fs-extra' ] ]
verbose from cache /export/u1/homes/elenius/projects/SAVE/git/vwf/package.json
info preinstall [email protected]
verbose from cache /export/u1/homes/elenius/projects/SAVE/git/vwf/package.json
info using shrinkwrap file /export/u1/homes/elenius/projects/SAVE/git/vwf/npm-shrinkwrap.json
verbose readDependencies: returned deps [ { crypto: '[email protected]',
verbose readDependencies: returned deps 'socket.io': '[email protected]',
verbose readDependencies: returned deps async: '[email protected]',
verbose readDependencies: returned deps mime: '[email protected]',
verbose readDependencies: returned deps 'js-yaml': '[email protected]',
verbose readDependencies: returned deps optimist: '[email protected]',
verbose readDependencies: returned deps 'fs-extra': '[email protected]' } ]
verbose cache add [ 'crypto@[email protected]', null ]
silly cache add: name, spec, args [ undefined,
silly cache add: name, spec, args 'crypto@[email protected]',
silly cache add: name, spec, args [ 'crypto@[email protected]', null ] ]
verbose parsed url { pathname: 'crypto@[email protected]',
verbose parsed url path: 'crypto@[email protected]',
verbose parsed url href: 'crypto@[email protected]' }
silly cache add: name, spec, args [ 'crypto', '[email protected]', [ 'crypto', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'crypto', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'crypto', '[email protected]' ]
verbose cache add [ 'socket.io@[email protected]', null ]
silly cache add: name, spec, args [ undefined,
silly cache add: name, spec, args 'socket.io@[email protected]',
silly cache add: name, spec, args [ 'socket.io@[email protected]', null ] ]
verbose parsed url { pathname: 'socket.io@[email protected]',
verbose parsed url path: 'socket.io@[email protected]',
verbose parsed url href: 'socket.io@[email protected]' }
silly cache add: name, spec, args [ 'socket.io',
silly cache add: name, spec, args '[email protected]',
silly cache add: name, spec, args [ 'socket.io', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'socket.io', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'socket.io', '[email protected]' ]
verbose cache add [ 'async@[email protected]', null ]
silly cache add: name, spec, args [ undefined, 'async@[email protected]', [ 'async@[email protected]', null ] ]
verbose parsed url { pathname: 'async@[email protected]',
verbose parsed url path: 'async@[email protected]',
verbose parsed url href: 'async@[email protected]' }
silly cache add: name, spec, args [ 'async', '[email protected]', [ 'async', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'async', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'async', '[email protected]' ]
verbose cache add [ 'mime@[email protected]', null ]
silly cache add: name, spec, args [ undefined, 'mime@[email protected]', [ 'mime@[email protected]', null ] ]
verbose parsed url { pathname: 'mime@[email protected]',
verbose parsed url path: 'mime@[email protected]',
verbose parsed url href: 'mime@[email protected]' }
silly cache add: name, spec, args [ 'mime', '[email protected]', [ 'mime', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'mime', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'mime', '[email protected]' ]
verbose cache add [ 'js-yaml@[email protected]', null ]
silly cache add: name, spec, args [ undefined,
silly cache add: name, spec, args 'js-yaml@[email protected]',
silly cache add: name, spec, args [ 'js-yaml@[email protected]', null ] ]
verbose parsed url { pathname: 'js-yaml@[email protected]',
verbose parsed url path: 'js-yaml@[email protected]',
verbose parsed url href: 'js-yaml@[email protected]' }
silly cache add: name, spec, args [ 'js-yaml', '[email protected]', [ 'js-yaml', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'js-yaml', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'js-yaml', '[email protected]' ]
verbose cache add [ 'optimist@[email protected]', null ]
silly cache add: name, spec, args [ undefined,
silly cache add: name, spec, args 'optimist@[email protected]',
silly cache add: name, spec, args [ 'optimist@[email protected]', null ] ]
verbose parsed url { pathname: 'optimist@[email protected]',
verbose parsed url path: 'optimist@[email protected]',
verbose parsed url href: 'optimist@[email protected]' }
silly cache add: name, spec, args [ 'optimist',
silly cache add: name, spec, args '[email protected]',
silly cache add: name, spec, args [ 'optimist', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'optimist', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'optimist', '[email protected]' ]
verbose cache add [ 'fs-extra@[email protected]', null ]
silly cache add: name, spec, args [ undefined,
silly cache add: name, spec, args 'fs-extra@[email protected]',
silly cache add: name, spec, args [ 'fs-extra@[email protected]', null ] ]
verbose parsed url { pathname: 'fs-extra@[email protected]',
verbose parsed url path: 'fs-extra@[email protected]',
verbose parsed url href: 'fs-extra@[email protected]' }
silly cache add: name, spec, args [ 'fs-extra',
silly cache add: name, spec, args '[email protected]',
silly cache add: name, spec, args [ 'fs-extra', '[email protected]' ] ]
verbose parsed url { pathname: '[email protected]',
verbose parsed url path: '[email protected]',
verbose parsed url href: '[email protected]' }
verbose addNamed [ 'fs-extra', '[email protected]' ]
verbose addNamed [ null, null ]
info addNameTag [ 'fs-extra', '[email protected]' ]
verbose raw, before any munging crypto
verbose url resolving [ 'https://registry.npmjs.org/', './crypto' ]
verbose url resolved https://registry.npmjs.org/crypto
http GET https://registry.npmjs.org/crypto
verbose raw, before any munging socket.io
verbose url resolving [ 'https://registry.npmjs.org/', './socket.io' ]
verbose url resolved https://registry.npmjs.org/socket.io
http GET https://registry.npmjs.org/socket.io
verbose raw, before any munging async
verbose url resolving [ 'https://registry.npmjs.org/', './async' ]
verbose url resolved https://registry.npmjs.org/async
http GET https://registry.npmjs.org/async
verbose raw, before any munging mime
verbose url resolving [ 'https://registry.npmjs.org/', './mime' ]
verbose url resolved https://registry.npmjs.org/mime
http GET https://registry.npmjs.org/mime
verbose raw, before any munging js-yaml
verbose url resolving [ 'https://registry.npmjs.org/', './js-yaml' ]
verbose url resolved https://registry.npmjs.org/js-yaml
http GET https://registry.npmjs.org/js-yaml
verbose raw, before any munging optimist
verbose url resolving [ 'https://registry.npmjs.org/', './optimist' ]
verbose url resolved https://registry.npmjs.org/optimist
http GET https://registry.npmjs.org/optimist
verbose raw, before any munging fs-extra
verbose url resolving [ 'https://registry.npmjs.org/', './fs-extra' ]
verbose url resolved https://registry.npmjs.org/fs-extra
http GET https://registry.npmjs.org/fs-extra
ERR! Error: failed to fetch from registry: mime
ERR! at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12
ERR! at cb (/usr/share/npm/lib/utils/npm-registry-client/request.js:31:9)
ERR! at Request._callback (/usr/share/npm/lib/utils/npm-registry-client/request.js:136:18)
ERR! at Request.callback (/usr/lib/nodejs/request/main.js:119:22)
ERR! at Request. (/usr/lib/nodejs/request/main.js:212:58)
ERR! at Request.emit (events.js:88:20)
ERR! at ClientRequest. (/usr/lib/nodejs/request/main.js:412:12)
ERR! at ClientRequest.emit (events.js:67:17)
ERR! at HTTPParser.onIncoming (http.js:1261:11)
ERR! at HTTPParser.onHeadersComplete (http.js:102:31)
ERR! You may report this log at:
ERR! http://bugs.debian.org/npm
ERR! or use
ERR! reportbug --attach /export/u1/homes/elenius/projects/SAVE/git/vwf/npm-debug.log npm
ERR!
ERR! System Linux 3.2.0-67-generic
ERR! command "node" "/usr/bin/npm" "install"
ERR! cwd /export/u1/homes/elenius/projects/SAVE/git/vwf
ERR! node -v v0.6.12
ERR! npm -v 1.1.4
ERR! message failed to fetch from registry: mime
verbose exit [ 1, true ]

Installation issues on Mac oSX El Capitan

The lovely folks at Apple have made a dramatic change to the OS in El Capitan. They have taken away write privs even for root user to the /usr /bin and a couple of other directories under the name of protecting the users form themselves!!!! So the node installation symlink fails ... I am hacking the install script right now to mke it check to see if node exists already in the path etc. The otehr thing I will work on is to make it completely user space but it will take some time... since this is my late night project.

Windows install overwrites system PATH

Ran the installer on my Win 7 Enterprise x64 laptop. When it finished I opened a command prompt and tried to run vfw, but the command shell didn't recognize it. I then checked path and found that it had been completely overwritten during the installation. There was now only one entry in PATH and it was pointing to the node sub-folder under vfw program directory. Everything else was gone.

Fortunately, I had a recent Windows system restore point to fall back to.

Improve the new user experience

Right now, it's hard to get started using VWF. We should make that experience awesome. To that end, I wrote an Ideal README. That gave rise to the set of issues captured below.

Website

  • As a product owner, I want an example app with source code embedded into website home page #2956

Documentation

  • As a developer, I want a clearer README #2954
  • As a developer, I want a one-page documentation site #2923

Install

  • As a developer, I want one bash script to install VWF on Mac or Linux #2957
  • As a developer, I want to install without building anything (pre-built binaries) #2958
  • As a Windows developer, I want a bootstrap exe that will download and install everything #2959
  • As a product owner, I want the bash script to be available at http://get.virtual.wf #2960
  • As a product owner, I want to track downloads on the bash install script #2961

Quick Start

  • As a developer, I want a command-line interface for creating VWF apps #2962
  • As a developer, I want to run vwf inside of a folder with only my app #2962
  • As a developer, I want a command-line interface for starting the VWF server for my app #2963

Badges

  • As a product owner, I want to display the build status in the README #2964

Examples

  • As a product owner, I want a screencast of building an awesome app quickly with VWF #2965

Community

  • As a product owner, I want to provide an IRC channel to potential users #2966
  • As a product owner, I want to respond to questions about VWF on Stack Overflow #2967

Multiple nodes with same source dae

Just going through the Pong tutorial and noticed I could not make the paddles different colors. Last color assigned gets assigned to both paddles.
Workaround is to make two copies of the dae file so that each paddle has its own...

Mac install ignores homebrew install of Node.js

When using "curl -kL http://get.virtual.wf | sh" as the installation method, Node.js is installed with symlinks from /usr/bin/... to $HOME/.vwf/.node/bin/...

This action does not take into account a homebrew installation of Node.js or other as well as multiple users on the system not having access to your home directory since it is symlinking there.

The installer should ask if you want Node.js installed and recognize an existing installation. It should also use /usr/local/bin, but it may need to create it or just ask the user to put it in their PATH.

Server throws an error on instantiation of new demo app

I have just installed an instance of VWF using the recommended install script.

vwf create 1world
cd 1world
vwf

Produces the following error
events.js:85
throw er; // Unhandled 'error' event
^
Error: write after end
at ServerResponse.OutgoingMessage.write (_http_outgoing.js:413:15)
at Object._404 (/root/.vwf/lib/nodejs/serve.js:41:18)
at Object.Serve (/root/.vwf/lib/nodejs/vwf.js:143:15)
at Server.OnRequest (/root/.vwf/node_vwf.js:106:17)
at Manager.handleRequest (/root/.vwf/node_modules/socket.io/lib/manager.js:565:28)
at Server. (/root/.vwf/node_modules/socket.io/lib/manager.js:119:10)
at Server.emit (events.js:110:17)
at HTTPParser.parserOnIncoming as onIncoming
at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23)
at Socket.socketOnData (_http_server.js:343:22)

MVP to advertise

  • Fix demo server once for all ( Issue #176 )
  • Fix issue with website freezing in Firefox on Macs
  • Fix Windows installer so it does not overwrite user's PATH variable and repost it to website (Issue #155)
  • Investigate 503 errors when downloading the Mac build
  • Documentation
    • Revamp documentation to make sure people don't get lost
      • Demo page: Add link to browser requirements up top and update link to browser requirements in error text)
      • Tutorial: Move pong app to the top of it
      • Rewrite Tutorial section to make it more obvious to developer to download .dae files (see Issue #310 )
      • Reorganize
      • Go through the whole site looking for broken links
      • Add a bit about the four things necessary to maintain synchronization
        • Stuff that you want to synchronize must be stored on the model side in a node property
        • There must not be any stateful variables in your model components that are not properties
        • Do not use calledMethod or firedEvent in the view except for things that are ephemeral (happen and then are gone) – nothing stateful
        • New for event handler replication: Do not have any local variables or functions in your model components – closures will not be preserved
      • Add a "pitfall" about having properties that are arrays or Objects w/ nodes in them
      • Add a “pitfall” that warns of putting private functions in behaviors
      • Test in all sorts of browsers with all sorts of widths
      • Can csr generation be completed in one step like this? openssl req -new -newkey rsa:2048 -nodes -sha256 -out server.csr -keyout server.key
    • Remove examples that we no longer want
    • Fix up remaining examples: refactor and comment so they make for good examples
    • Add a recipe for each one, including one for adding sound and video with jPlayer driver (clean up jPlayer driver in the process)
  • Respond to website feedback that we've already gotten
    • Change title tagline on page to better tell VWF story
    • Eliminate load timeout errors on demo server
    • Respond to Metaverse's comments via email and on the forum
    • Do a better job of explaining: What is VWF?
    • Put something in the default app that is created, so people know it's working
    • Change background of duck app to white
    • Adjust lighting to make it more beautiful (try to find three.js plugin for three light setup – or standard lighting setup in 3DS Max)
    • Make left-click and drag spin the duck
  • Add a news blog to VWF site, where we can post about upcoming features, releases, and breaking changes
  • Point people at Stack Overflow and gitHub issues (maybe in footer) - and enact process by which we check these regularly
  • Make browser incompatibility message be more specific (again) about what failed
  • Remove section about initializeCamera from Getting Started
    • Complete PR #95: fix example/multiuser (second user's screen is black - first bad commit 543d52) - Step through code to see which part of new code it's getting tripped up in (probably has something to do w/ taking control of the navObject)
    • Edit Getting Started to reflect the change
  • Decrease load time on public server
    • Start loading apps before document.ready
    • Move to node server
    • Profile to see the biggest issue (mars-game would be a good example)
    • Decrease download time
      • Investigate glTF as an alternative to collada
      • Compress 3D model files for transport
        • Minify
        • Gzip?
  • Improve demo page experience (change layout to something more like kineticjs or chrome experiements)
    • Patch kimray valve with XPC animation fixes so we can patch the version on demo server
    • Add text that explains what user can do
    • Fix “join current session” functionality
    • Fix Mars Game multiuser experience
    • Fix and post LCS app
      • Once VCTE is posted, remove command-center from VWF repo
      • Do interactive rebase on latest three.js version and drop our commit that changed “uv” to “uvMap”
      • Release VWF to Master
      • Copy LCS app to demo server
    • Add XPC
    • Fix and add Cesium-webrtc 3192 and 3107
    • Make bzflag really shine
      • Make it not die at 15 people
        • Rendering? (what happens when you have 15 tanks?)
        • Network traffic? (reduce key and mouse events – remove mouse events that aren’t necessary)
      • Componentize navigation so users can create their own that still reduces latency - have bzflag use that kind of navigation
      • Focus on game mechanics (take out bzflag stuff and just have tanks shoot each other) - maybe update outdated code at the same time
      • Add shaders / improved art to make it look amazing
    • Add something 2D
    • Have demo.virtual.wf serve up (once again) the unsupported.html in IE 8 - (right now, the loading screen just sits forever)
    • Have app tell Eric's phone that it won’t run on it
    • Add link to VWF video (especially for unsupported browsers)
  • Have downloads page be a matrix of current and past installers
  • Show webpage to people and get feedback
  • Remove flash from VWF website to avoid sending the wrong signal (and since it doesn't work on mobile devices)
  • Process pull requests
  • Process Issues and other things we've heard from users like:
    • Experience of loading a new scenario and knowing when everything has been loaded could be better (start with an onSceneReady function)
    • Loading spinner doesn't always make sense
    • In Multiuser cookbook, mention the makeOwnAvatarVisible flag
  • Reach out to all the people who have posted pull requests or issues and see what their experience has been
  • Plan a conference experience
  • Advertise!
  • Stress test the system and document how well it can scale and document
  • Update wikipedia page to be a little more human-readable - decide what we want to say and say it
  • Launch the website (see to-do list)
  • Improve graphical performance (complete branch/view-interpolation)
  • Fix bugs and move integration to master and give us these wonderful features: websocket network check, no scroll bars, view interpolation, Current Sessions, no need for initializeCamera
    • Fix view interpolation bug (PR #149)
    • Humvee and radio lessons don't load - Issue 3189 and 3190
    • Duck does not load 3193
    • Put up warning about occasional load timeouts on command-center - Issue 3188
    • Merge readme pull request
    • Investigate slowness of apps in Firefox
  • Add a comment in the default app created by vwf create that points the user to the Getting Started guide (PR #137)
  • Remove unnecessary libraries from framework (bootstrap, etc) and update demos so they still work (include necessary libraries in the apps, themselves) (PR #133)
  • Add Google Analytics back to download page somehow

Fix documentation

  • Fix h1 and h2 headers that block clicking on links above them
  • Replace “Installation Instructions” with Mike’s new version - waiting for @MichaelVacirca
  • Tutorials - waiting for @jessmartin 's Getting Started page [virtual-world-framework/vwf-web#17]
    • Have Tutorials section point to Jess’ Pong application
    • Remove Hello World and Sandtable tutorials
  • Component Structure
    • Switch “components” and “prototypes” links to point to sections, not other pages
  • Apply browser checks to all pages with embedded content, and also the browser requirements page
  • The Drivers
    • Instead of “the next section…” say, “Now we’ll talk about how the system works and how to reconfigure the system to accomplish more complex tasks”
    • Fix links to point to other parts of the page instead of other pages
    • Move this section right before the Drivers section or revamp whole architecture section to just talk about the structure, not too deep
    • Switch “GLGE” to “three.js”
  • Components
    • Component Contents
      • “needs to be included” instead of “include”
      • Children are not inherited by the component (mentioned both in extends and implments)
      • Fix prototypes, behaviors links
      • Shouldn’t the set and get have semicolons?
      • Change “definined” to “defined”
      • Are all the dispatched event names still valid?
  • Cameras
    • Say “every application that extends ‘scene.vwf’” automatically….
    • Fix components link
    • Transform properties
      • Figure out what axis/angle part should say (is it true what it says about multiplication?)
      • Give a better example than that convoluted one
    • Using multiple cameras
      • Test to see if activeCamera part is true
  • Lights
    • Fix links
    • Remove reference to glge properties
  • Prototypes
    • Fix links
    • Remove reference to navscene.vwf
  • Behaviors
    • Second paragraph: behaviors and children are not inherited
  • Animations
    • Links
    • Switch “collada animations” to “model animations” or something
    • Does it work to do future w/o parentheses?
  • Remove HTML Overlays section\
  • Editor
    • Upper “right”, not upper “ride”
    • “entered”, not “intered”
    • “To exit the script editor” not “To exit to script editor”
    • Does Time pausing/fastforwarding work?
    • About – version numbers still fit the pattern?
  • Querying
    • Links
    • See if there are any outstanding tasks for the Querying section
  • Cookbook: Remove all but the first sentence
  • Create a Multi-User Application
    • Links
  • Create a simulation
    • Remove reference to navscene
    • Have the user put the new component in the folder with their app, not in support/client/blahblahblah
    • Remove reference to “Advanced Event Handling” recipe
  • Create a 2D interface
    • Links
    • Create Components should be titled “Create Nodes”
  • Change “componentName” to “nodeName”
    • Monitor the Model from HTML should not be a link
  • Switch Materials recipe
    • Remove reference to navscene
    • Links
    • Fix spacing in code
  • Add Chat recipe
    • Fix text at beginning of recipe
    • May not be relevant to reference the multi-user recipe anymore
    • sceneNode is a confusing name since there is no 3D scene
    • Use “===”
    • “setup” is two words when used as a verb
    • Fix spacing in code
  • Complex transforms recipe
    • Fix spacing in code
    • Links
    • Transform By examples use transformTo
    • “There are several vector and matrix operations that can be used to calculate a vector and/or matrix to assign to the transform properties or passed to the transform methods.” Should say “which can be assigned to the transform properties or passed…”
    • “finally here are a few more examples”
  • Add Training Instructions
    • Fix underlining
    • Links
    • Remove reference to GLGE
  • Persistence
    • Figure out what to do with this – is this really up to date? I don’t like the call to vwf
  • Testing
    • Fix Note
  • Pitfalls
    • Links
  • Application API
    • Remove
      • Atmosphere.vwf
      • Canvas.vwf
      • Car.vwf
      • centralObject.vwf
      • cesium.vwf
      • control.position.vwf
      • control.vwf
      • dynamicObject.vwf
      • editable3.vwf
      • fly.vwf
      • googleEarth.vwf
      • info-on-click.vwf
      • instruction.vwf
      • lesson.vwf
      • mesh.vwf
      • navscene
      • node3edit.vwf
      • polygon.vwf
      • polylineCollection.vwf
      • polyline.vwf
      • scale-on-click
      • skybox.vwf
      • spin-on-click
      • sun
      • sway-on-click
      • translate-on-down
      • video
    • Rename
      • Client to webRTC-client
    • Fix
      • Control.position.vwf
        • Text under sequence needs work
      • followPath.vwf
        • documentation not showing up correctly
        • Switch reference to fly.vwf to followPath.vwf
      • Material.vwf
        • Make sure it doesn’t get mixed w/ cesium material component
      • Navigable.vwf
        • Change description to make sense
      • Node.vwf
        • Flesh out methods and events
  • System API – Remove it for now
  • Links all take you below title
  • Want a link for every section
  • Frequently when I click a link on the left, the other links and some of the top disappear. How come? (links show up when I mouse over them; everything shows up if I mouse wheel up)
  • Rethink documentation
    • Example apps have no comments in them
    • Some example apps don't work
    • Create an example app using pointerInfo and pickInfo
    • Show how to create objects in yaml, json, and dynamically in js
  • Document pitfall of doing any operations on the nodeID (don’t expect that you know what form it’s in)

the "find(...)" function is not returning the correct application root node.

Hi!

I stumbled upon an issue where I am using the the find(...) function in the latest VWF build 7.0.
When I try to find the application root node below this code snippet, I get an undefined for my canvas variable:

debugger;
var sceneNode = vwf_view.kernel.find("", "/")[0];

var canvas = $('#'+ sceneNode).get(0);

NOTE: When I use vwf.find(...), I do receive some sort of application root node, "/index.vwf", but the Jquery Sizzle gets an exception as well. Any insight or help on this issue would suffice.

Thank you!

Improve the installation experience

This encompasses the following two issues.

As a developer, I want one bash script to install VWF on Mac or Linux

Redmine #2957

GOAL: curl https://try.virtual.wf | /bin/sh

This will simply combine the 3 different scripts we have into one script that has if else blocks for the different environment.

Here are some examples for reference:

The installer will still manually download ruby, clone the github repo, and build VWF using rake.

Notes:

  • This isn't a huge change, but it sets up the next thing.
  • Need to update the README to point to the new unified install script. Check out README-1.0.md for inspiration.

As a developer, I want to install without building anything (pre-built binaries)

Redmine #2958

GOAL: The curl step should only download the appropriate package with pre-packaged binaries for each architecture.

1) Write a script (bash, probably, though it could be javascript) that creates the bundle.

The bundle should include:

  • node (download the appropriate binary from http://nodejs.org/download/)
  • node_modules (/node_modules)
  • npm? I don't think we need it...
  • the node server (/lib)
  • the ruby server (/lib)
  • our client support files (/support/client and /support/proxy)
  • selected demos from the public folder?

The bundle should not include:

  • our website
  • the public folder
  • our documentation build tools (jsdoc, pygments, etc)
  • ruby

Here's how Meteor does it: https://github.com/meteor/meteor/blob/devel/scripts/generate-dev-bundle.sh

Notes:

  • On node_modules - it will likely require an npm install to be performed. Hopefully, none of our node_modules require native compilation. If so, we'll have to do a npm install on each of the target platforms, probably via virtual machines.
  • On NOT including ruby - it's complicated to include ruby. It's not as simple to install as node. If we were going to be supporting the ruby server down the road, I'd say we use OmniBus (or something like it) to build a precompiled binary for each platform with ruby included. For more info on OmniBus, see this nifty little tutorial.
  • After this is complete, we'll want to note to the user that the default will now be the node server. The ruby server will still be included, and we can document how they can use it, but it will be on them to install ruby, install bundler, bundle install, etc.
  • Meteor actually wrote tests for their bash scripts: https://github.com/meteor/meteor/tree/devel/scripts.

2) Update our install.sh script (created in #2957) to download the appropriate package and unzip it into the correct directory.

See the examples from #2957 as to how meteor and chef do this curl/unzip installation.

References

Strange inheritance behavior

Maybe I just don't understand this, but this behavior seems like a bug. When I have a node definition in hmvee.vwf.ymal, and I have a child of the scene that extends it, the 'initialize' function in hmvee.vwf is called twice. In the example below, "got here" appears twice.

hmvee.vwf.ymal

extends: http://vwf.example.com/node3.vwf
source: matv01_veh.dae
type: model/vnd.collada+xml
properties:
scripts: 
- |
this.initialize = function() {
            alert("got here");
}

index.vwf.ymal

...
extends: http://vwf.example.com/navscene.vwf
properties:
  navmode: none
events:
  keyDown:  
children:
  HUMVEE:
    extends: hmvee.vwf
...

website ssl and interactive-tactical-decision-games

Hi,

Do you have a plan to revive virtual.wf website? We'd like to point our partners and investors to the official website for references. Any plan to renew the SSL in the short term? I would suggest a free and easy way to implementing SSL using letsencrypt at https://letsencrypt.org/

What is the relation between this repos and the vwf repos at interactive-tactical-decision-games https://github.com/interactive-tactical-decision-games/vwf ? I see some of the principle contributors of this repository committing code there. Will the code changes merge to this repos? Is a VWF application supporting U.S marine's tactical decision game on the pipe-line? Sorry about asking these questions here, it is probably not good place, but the repos there doesn't seem to accept issues yet.

We are planning our own integration with VWF, and we are very interested to hear from you about VWF and its future plan.

Cesium demo problem

Hi,

Anyone tried cesium demo? It seems run fine with 'localhost:3000/public/agi/cesium', but will not load the globe if access demo remotely via other machine with its NIC IP '192.168.1.199:3000/public/agi/cesium'. Chrome console shows 'Load timeout for modules:' for a bunch of vwf components like vwf/model/cesium/core/Transforms, vwf/model/cesium.....

It does not look like a browser caches issue. Any idea why this happened?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.