User:Fim
From OpenSimulator
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
The Platform of Choice: OpenSimulator
OpenSimulator is a framework to create, host and distribute Virtual 3D Environments of all sizes. The 3D Simulator can run on local machines as well as being hosted on server infrastructure to provide broader access to the environment. It comes with an extendable module concept, to provide a large variety of applicability. Serious Games, Architecture, Landscaping, City Planning and various educational use cases are utilizing the platform - especially for visualization and simulation, fostering creativity and providing educational experiences. It provides a large set of group management tools. Text chat, voice chat, topic votings are some useful features for instance. The finegrained ownership and permission control for Data, 3D Areas and Virtual Objects is unique at the time. An outstanding feature is the so called Hypergrid. Distributed simulations can be connected and become a continuous virtual 3D Environment or Simulation. Many Universities and other educational institutions do link their simulations to facilitate a seamless experience for their students. Designing in 3D and scripting interactive experiences demand a variety of skills, spatial visualization ability, mathematical and programming wise - which can be achieved within the learning environment by 'Trial and error', 'Learning by doing', structured lessons or interactive classes. OpenSimulator is therefore an extraordinary versatile environment to develop and provide STEM learning experiences - preferably self-paced and self-driven, to all types of students/learner.
OpenSimulator is available for free -
under consideration of mentioning the original copyright holder and the copyright notice is retained. The utilized licence (BSD) allows OpenSimulator to be integrated into proprietary products and developments. This type of licence empowers students to build upon the existing functionalety of the framework, to integrate it into their own developments, come up with individual solutions or jump start their own business venture. It is the largest OpenSource project of its kind - written in C# - which is activly developed and maintained. Volunteers, independent developers, Universities, non profit institutions and corporations are contributing to the projects source code regularly.
Accessing OpenSimulator: 3D Environment Clients
There is a variety of clients available for any platform - providing access for all imaginable use cases. VR headsets, gamepads, 3D navigators, mouses, joysticks and keyboards do support a wide range of interaction possibilities - even devices using electro-encephalogram (EEG) data can be utilized.
The Benefit of a Web-based Viewer
Content creators need users, users do not need content creation tools. While most of the existing clients for OpenSimulator are focused on content creation for a good reason, content developer and users lack a viewer - to just access, view or interact with the 3D Environment. In the recent past, OpenSimulator(-ish) Environments did provide a diverse toolchain to be or to become creative in multiple ways. The easiness to do so, using the frameworks clients, fostered the forming of an independend cluster comprised of artists, designers, coder, engineers, educators and scientists - collaborating interdisciplinary on tasks and projects of all sizes and kind. Those creators are often surprisingly imaginative, coming up with unexpected application of ideas, concepts and design - for their sheer pleasure but also for educational and scientific reasons. Many of those collaborators managed to advance their capabilities of creativity - often through 'learning by doing', that they achieved to become experts in their field of content creation, programming, visualization and prototyping using the 3D environment. To provide broader access to those developments, an easy way to do so is needed - and there already is a solution emerging.
Web browsers became the standard software on mostly any platform and all consumer devices. They are an universal tool to access information, to communicate, watch television, play games, learn and even work. Utilising such clients is a necessity to reach a broader audience - and a prerequisite for any application whose success is measured in quantitative terms (user figures). The advancement of Web browser functionality via HTML5, Canvas or WebVR - and the ongoing progress of Moore's law has enhanced the capacity of electronic consumer devices, so that CPU/GPU-intensive applications can nowadays be run on small size gadgets and within regular Web browsers. It is technically possible to access OpenSimulator Environments via browser – to which extent depends on the capabilities of the consumers device. Following is a basic concept for the development of such an application.
"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 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 'reconquest' 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 24 hours a snapshot (.oar) of the current region state is created, which is then converted to a format WebGL can render. The data of avatar locations can be provided via xml-rpc or 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
Communication
User
- IRC Front end » A minimalist Web IRC client
- IRC Back end » IRCBridgeModule
- WebRTC
Step Two will be
Writing a parser/converter for '.oar' files using python to extract data - which then is used utilizing three.js.
The Glossary
||||| |||| |||||