virtual-world-framework / vwf Goto Github PK
View Code? Open in Web Editor NEWVirtual World Framework
Home Page: https://virtual.wf
License: Other
Virtual World Framework
Home Page: https://virtual.wf
License: Other
I’m having a couple of issues w/ the currently posted Windows Installer:
Hi,
I could not visit virtual.wf website. Something wrong with your security certificate?
I'm on a Macbook Pro. - Mavericks
Chrome browser Version 36.0.1985.143
How can I properly install vwf on my Mac and run the Tutorial?
Cheers,
Darius
[email protected]
In preparation for 0.7.0 release, the following issues on development need to be addressed:
Add to backlog:
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
The release tarballs are hosted on download.virtualworldframework.com, which cannot be resolved by DNS.
Do you have the latest release hosted somewhere else?
Thanks!
gotProperty
calledMethod
initializedNode
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)meteor bundle
The server is currently vulnerable to Heartbleed, to an OpenSSL MITM vulnerability, and is using SHA-1-signed certificates.
The SSL Labs analysis lays out the issues:
This could also be a good time to tighten up the ciphers to favor forward secrecy, and to implement the HSTS header, so that browsers skip over the http://
URL entirely and don't wait for the redirect.
On that (side) note, the project uses an http:// URL in a couple places:
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?
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:
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
movePlayer
to be a method on the player node.The Game Itself
navmode: none
should do it.)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 ]
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.
Hi VWF Contributors:
Might any of you be interested in participating in and/or organizing a hack-a-thon at MODSIM World 2015 in Virginia Beach?
Reply here or email [email protected]
Cheers,
Kevin
Dear friends. First of all thank you from my heart for your great library.
For now site https://virtual.wf/ have problem with SSL sertificate.
All browsers refuse connection to it by SSL conection problem.
Can you found the way how to fix that?
Sincerely yours
Alexander Stroganov
www.buddism.ru
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.
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
Documentation
Install
Quick Start
Badges
Examples
Community
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...
Good evening.
We mix tank example and mars game and it look really cool. But how we can manage collusion with ground? any opportunity to add physical engine?
http://www.buddism.ru/___SANGHA___/_MULTIMEDIA_/_LIBRARY_3D/_VWF/index.php?img_page=Screen+Shot+2017-02-06+at+01.35.02.png&ocr=1
Thank for your time!
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.
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)
.dae
files (see Issue #310 )openssl req -new -newkey rsa:2048 -nodes -sha256 -out server.csr -keyout server.key
document.ready
onSceneReady
function)makeOwnAvatarVisible
flagvwf create
that points the user to the Getting Started guide (PR #137)yaml
, json
, and dynamically in js
The "Application API" and "System API" links at virtual.wf documentation are broken. https://demo.virtual.wf is down?
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!
This encompasses the following two issues.
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:
GOAL: The curl
step should only download the appropriate package with pre-packaged binaries for each architecture.
The bundle should include:
The bundle should not include:
Here's how Meteor does it: https://github.com/meteor/meteor/blob/devel/scripts/generate-dev-bundle.sh
Notes:
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.See the examples from #2957 as to how meteor and chef do this curl/unzip installation.
References
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
...
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.
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.