jbaicoianu / janusweb Goto Github PK
View Code? Open in Web Editor NEWAn in-browser implementation of JanusVR
License: MIT License
An in-browser implementation of JanusVR
License: MIT License
Test url: http://spyduck.net/index.html
Expected behavior: all instances of painting_sphere use different image_id's
Result: all painting_sphere objects have the same image (the first image_id assigned)
Lots of draw calls (25,000+) for the desk objects in this room, despite a small number of objects
Maybe some issue with model parsing?
http://bamvr.com/#janus.url=http%3A%2F%2Fwww.dithernet.com%2FNico
Videos seem to be loading and playing, but are just showing up as black, maybe some needsUpdate problem?
The portal thumbnails are not 1:1 with native.
It looks like transparency is broken for loaded models, we probably need to set the transparent: true flag somewhere while loading. This worked at some point, and regressed when the threaded asset loader was added.
The XML parsing libraries browsers use for DOMParser is a lot more picky about XML validity than the one the JanusVR native client uses. Specifically, one error that frequently causes problems is duplicate attributes on objects, for example:
<Object scale="1 1 1" id="class3" pos="0 0 0" scale="1.1 1.1 1.1" />
Since "scale" is duplicated, strictly speaking this XML is invalid, but it would be nice if we could handle this gracefully.
At the very least we should detect xml parse errors and show a message to the user, rather than dumping them into an empty or partially-complete room. There's also the option of switching to a pure-js XML parser, but this would make XML parsing slower across the board.
Another option worth considering is the idea of running the XML through an XSLT transform before trying to parse it. It may be possible to write an XSLT rule which will strip these duplicates - or it's possible that it will just fail to run because the XML is invalid.
Hello ;D
I have a problem to install janusweb local under linuxmint 18
this is my error messages ...
http://paste.md-5.net/welimaseyu.vbs
Can you check this ;D
Have a nice Day ;D
Bogus
Admin mode could be used to provide room editing functionality. Need to fix up some bugs to make it usable before enabling it.
The chat window takes up quite a bit of space on mobile, could we have an option to have that hidden?
The first time the user activates VOIP, there's a browser prompt. This is preventing the keyup event from firing, so after permissions are granted VOIP stays active, leaving an open mic.
-need a turn on xhair option, and or a switch to free cursor mode (i.e. not locked to head). the 2d interface need to be rock solid.
-need a floor for walking and rt click to teleport like in janus native. or maybe just hotspots/anchors/vistas to click to teleport.
Hello ;D
I have a little problem with janusweb, I have npm and node-js install over ppa from ubuntu. I will install janusweb on a server, but I becomes by install this message in the log-file
https://paste.md-5.net/kafitowoqa.md
My question, if the nod-js version to low for janusweb ? or is another problem ?
Greetings
Bogus
Clicks are currently implemented using mouse events, portals should use the object activation system instead so they can be interacted with using any supported controller type
Comparison of Native and Web in a room with tex_linear="false" on objects:
https://spyduck.net/files/personal/screenshots/sharex/1490476136_2017-03-25_17-08-55.png
https://spyduck.net/files/personal/screenshots/sharex/1490476195_2017-03-25_17-09-50.png
User alu mentioned that objects with lighting=false are still being light dynamically, need to fix this
Tried playing a 360 video on latest android chromium apk, fails to even load. Here's the hash of the build in question:
https://ipfs.io/ipfs/QmczPrq7pyTNRU1DRq9aR9Sj8qbNUyoffJLxZUCmnTcHkr/
Ghosts are unimplemented, and would be useful for adding life to rooms
This is partially implemented, but not currently enabled
Probably to do with handlePopstate
The URL bar should be more lenient about accepting input. At the very least, if the user leaves off the http:// we should add it.
In the future we could also get fancy and search your history and auto-complete based on rooms you'd visited before, or once we get the room DB up and running we can provide suggestions from the corpus of all known Janus rooms.
We should be sending the data for tracked hands from web clients to native, but I think there's something wrong with the transform since they're not rendering properly.
Native client is sending us chat packets, should be pretty easy for us to handle
The paragraph tag shows up as a blue box with no text on it inside JanusWeb.
see: http://janusvr.com/guide/markuplanguage/index.html#paragraph
Site tested: https://kool.website/lab/retrip.html
screenshots: http://imgur.com/a/IngTK
We have basic support for running non-JanusVR worlds through a translator and presenting the default web room with the web content inside. We have the model files and other resources for Flickr, gfycat, imgur, reddit, vrsites, and youtube - just need to write the translator scripts.
alu needs gifs
Models exported with both a texture and a material color are rendered differently in JanusWeb than in JanusVR Native client. This is because JanusWeb multiplies the color by the texture, whereas JanusVR overrides material color and just uses the texture.
It's debatable which method is better, being able to set material color to blend with the texture color gives you a range of effects that you'd need to use a shader for otherwise. But people often export bakes, etc. with the default material diffuse color, which in Blender is rgb(0.8, 0.8, 0.8) intensity 0.8, which leads to everything looking dull.
We should at least be consistent with Native, but maybe it makes sense to have an option for this?
My photosphere gallery is just 1 repeated texture on all of the photospheres. This happens with objects that have different image tags.
Currently the colors in some pages in JanusWeb just feel sort of bland. We could make use of tone mapping to dynamically adjust the color range to bring out the colors in a room, especially for low-light situations.
We already use the EffectsComposer with Three.js and there are effects for different types of tone mapping:
https://threejs.org/examples/webgl_shaders_tonemapping.html
https://threejs.org/examples/webgl_tonemapping.html
AugmentedPerception.com has a mapping of which rooms and resources send CORS headers and which don't. We'll always need to proxy some amount of content to get around CORS restrictions, but we could save bandwidth and improve speed by accessing supported resources directly from the server they're hosted on.
Portals currently act like hrefs on the web, click to visit. They should act like portals in JanusVR, where clicking a portal opens the new room and lets you walk back and forth between them.
JanusVR rooms can specify AssetScript which defines logic for the world, and exposes a basic API for interacting with objects. Need to build a translation layer between that and Elation Engine's objects.
Hello ;D
I have clone the source to my server and have install node.js, but how I can start the webclient in my browser ?
Greetings
Bogus
Elation Engine used to have support for dragging and dropping textures and 3d models into the world from your desktop/other sites. Need to brush off this code and tie this in with Janusweb's editing system.
Need to support custom shaders from JanusVR
Currently the player is being represented by a single sphere, and only primitives like cubes, spheres, and cylinders are supported by the physics engine. Work has begun to add capsule and mesh-triangle colliders, when it's done we can start parsing and using the collision_id parameter for objects and enable gravity for the player.
In janusweb an Image doesn't flip on the back side, in native the Image is flipped horizontally
Test page for comparison:
http://paradox.spyduck.net/rooms/garbage/janusweb_image/index.html
The way skyboxes are handled now is currently pretty flaky. There's a race condition which sometimes causes the default skybox to be loaded even when the room specifies one to be used.
While we're fixing this, skyboxes should be per-room anyway, so they'll work better when we implement portal renderig (issue #5)
Current url structure is bad for linking and SEO. We shouldn't be using #janus.url=... to set the current room url, we should be using fully-qualified paths. Some examples:
https://web.janusvr.com/sites/http://www.janusvr.com/index.html
https://web.janusvr.com/sites/https://www.metacade.com/
https://web.janusvr.com/sites/ipfs://QmbuyH9yDL5RfSTQPdEtGFKrFdTmNDKFosxfaF1uUjPAEK/
TypeError: room.getObjectById is not a function
Test url: http://spyduck.net/index.html
Expected behavior: portals in picture frames will immediately move out of view until the pictures are clicked
Result: nothing happens, "TypeError: room.getObjectById is not a function" error repeatedly
Currently we just dump the user directly into a full 3d interactive world and let them figure it out. A splash screen would be a good way to explain to the user what they're looking at, tell them which features are supported but may require some input or a choice from them (gamepads, VR, 3D sound), and cover for some of the jankiness during the first-time load.
Native app is sending us voice chat packets, it should be possible to support this but it will take some experimentation
It's a bit too difficult to embed JanusWeb into an existing remotely-hosted JanusVR site right now. Common problems:
elation.janusweb.init()
assumes the page has a <head>
and a <body>
, should handle gracefully when they're not presentelation.janusweb.init()
should attach to onload handlers if called from <head>
FireBoxRoom
directly from the embedded page, it only works if the markup is enclosed in a <!-- HTML comment -->
The first time you encounter a 404, you end up seeing a black empty room instead of the default 404 error page. Subsequent 404s in the same session work, so it seems this is probably a race condition with the error translator.
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.