User:Fim

From OpenSimulator

Revision as of 06:21, 18 June 2015 by Fim (Talk | contribs)

Jump to: navigation, search

I am a Virtual World Developer living in Frankfurt/Main,
playing with OpenSimulator on a Raspberry Pi2
and do some DIY Hardware stuff.

Contents

My Current Projects Related To OpenSimulator

"A walkable 3D map"

The idea for this approach, to develop some kind of OpenSimulator Web-based viewer, emerged by a conversation on the OpenSimulator Educator's Mailinglist

Development Philosophy

Information Technology is one of the fastest moving, evolving areas in 'tech'. In the past decade, peer to peer (P2P), 'Blockchain' technology was changing the approach to many B2C solutions, towards a more decentralized system - which 'the internet' once was. Diaspora, YaCy, Freifunk - to name some - are representing the 'reclamation' of user data ownership, privacy control and actually - power. While it is efficent to re-use existing code (snippets) and building upon existing developments - it gives constraints. On the other hand it can be inspiring and timesaving. The development philosophy for "A walkable 3D map" worded in one sentence: "Empower individuals while using 'free resources efficiently' and utilize decentralized approaches."

Step One

Wording a Functional Specifications Document (FSD)

  • Utilizing a "3D Snapshot" of an OpenSimulator Region (.oar archive file)
    • Walk through via web browser -> WebGL / three.js
    • Ability to display 3D content (static, No LSL)
    • Movement control and camera control panels.
    • HUD functionality using JavaScript
    • No inventory access
    • No login required
    • Ability to load different teleport locations into a fixed teleport HUD
    • Region map with teleport capability
    • Runs from local install/USB key
    • Settings menu / autodetection draw distance
    • Chat (Text) functionality
    • Open Source licence
  • Please participate!
This is how the web-based viewer will work
Visiting the regions web-based viewer page is showing a window into the '3D Snapshot' region, the size of the window is determined by the performance of the users client. The window is overlayed by a translucent layer showing an opaque button labelled "Start Now!". By clicking the button, a 'CAPTCHA' field appears. Passing the 'Turing test', the translucent layer disappears and the back of an avatar inside the 3D Snapshot is shown. Simultaneously - a 'NPC' avatar 'spawned' inside the dependend simulator - at the regions Landing Point. The user can now operate the avatar. The location of in-simulator avatars can be transmitted into the '3D Snapshot', they are represented by a prim or by a textured mesh. The location of a 3D Snapshot avatar can be represented inside the simulator via NPC. Also shown is a 2D Region map utilizing JavaScript to 'teleport' to another spot. Movement control, camera control panels, the Region map and a settings menu icon are overlaying the scene - but can be folded up. The draw distance can be set manually too. Every X (24) hours a snapshot (.oar) of the current region state is created, which is then converted to a format WebGL/three.js can render. The data of avatar locations can be provided via xml-rpc/UDP. A possibility for text chat on the webpage is given - which can be relayed to the corresponding simulator region, in-world chat can be forwarded to the chat client on the website too.

Collision detection (3D Collision Map)
If (since) the user is operating the in-simulator avatar, the position would be transmitted 'to the 3D Snapshot'. This approach would require that newly rezzed in-simulator objects 'become physical' by the creation of the 3D Snapshot and in-simulator objects are not changing their position.

  • 3D Snapshot
  1. three.js Collision detection
Communication
  • User
  1. IRC Front end » A minimalist Web IRC client
  2. IRC Back end » IRCBridgeModule
  3. WebRTC
Step Two will be

Writing a parser/converter for '.oar' files using python to extract data - which then is used utilizing three.js.

  1. Existing converters
Resources

Blake's 'Viewer Functional Requirement Document' based on AjaxLife
OpenSimulator Developer Documentation
WebVR - Editor’s Draft (via CJ)
WebRTC and Web Audio resources
WebGL
three.js

- feed back here! -

Personal tools
General
About This Wiki