This Tutorial Explains what is OpenSim, How does it work, How to Create 3D Virtual World OpenSim Second Life, OpenSim Clients & Viewers & its Applications:
If you have ever played massively the multiplayer online role-playing games such as The Sim or Sim City, you might be closer to understand the concept of OpenSim and Second Life. But both OpenSim and Second Life are more than these role-playing games.
Both OpenSim and Second Life allow users to create and interact with three-dimensional virtual objects and scenes in a more immersive than afforded in 2D, and which is a detailed digital representation of real-world objects and scenes hosted on virtual worlds that can be detailed representations of the real world.
Table of Contents:
What Is OpenSim?
The most compelling advantage of OpenSim is that it generates 3D virtual worlds that are direct and more of real representatives of real-world objects than affordable in 2D environments. Users feel immersed in these environments while using. Thus it is very useful in gaming, training, modeling, and other use cases.
2D versus 3D:
[image source]
Virtual worlds, for instance, offer massive benefits for carrying out individual and business simulation projects such as those employed in education and training. You get virtual lands – as vast as you want – at very little cost, plus you also get the benefits of creating 3D content without having to understand how to develop multiplayer role-playing games.
Besides, while offering many tools for customization, OpenSim and Second Life carry better immersion benefits than role-playing games.
Like on many role-playing online games, you can create, shop, and offer for sale virtual property with real cash. On Sim City game, for instance, users can design and build their cities while on The Sim, players can control characters on day-to-day activities.
OpenSim allows users to create client-server communications. One can create 3D content using OpenSimulator software and then the same person or others can use OpenSim viewers to browse through the 3D content in the same way web browsers function.
Client-server communication:
[image source]
OpenSimulator is free, and also it is open-source software that allows anyone to create a virtual world or a simulation model of the real world regions and to access the virtual world on their computers using OpenSim viewers such as Firestorm.
The virtual worlds are hosted on servers that could be on the cloud. OpenSim compares to OpenQwaq and OpenWonderland, which are other smaller alternatives to OpenSim for people who want to build virtual worlds and items.
The below image is an example where OpenSim software is being used to build a mesh:
[image source]
The software provides the tools to build 3D elements that resemble the real world. This can be used for fun or for other things like building virtual communities such as in social media, training, meetings, social places, learning, and simulations.
As such, it is has found application among gamers, schools, and educators, health professionals, army, governments, and businesses.
One of the most compelling use-cases of OpenSim is virtual meetups and conferences.
- There are thousands of assets you can start with when building virtual worlds and virtual projects on OpenSim. Some are available free while, others come at a cost being sold by creators and merchants.
- An asset is a single mesh or object built by the simulator code. Also, it provides users with tools to build connectors and modules that can be used to extend the organization’s databases and platforms.
- Termed as grids, the standalone virtual worlds built by different builders and companies and projects are also inter-accessible through the hypergrid. Together, the inter-accessible virtual worlds are commonly called the metaverse.
History Of OpenSim
Darren Guard founded the OpenSimulator project in January 2007 although several previous attempts at similar projects were failed because of the challenge of writing a server and client at the same time.
The evolution of multi-user 3D virtual environments (MUVEs) and massively multiplayer online role-playing games (MMORPGs) started with the text-based interaction versions (called Multi-user Dungeons or MUDs) where multiple users could interact in texts.
MUDs advanced to MOOs or MUDS, object-oriented versions. MOOs then advanced into MUVEs as a result of advanced computer graphic technologies and information communication technologies. These have then advanced into immersive virtual worlds or Metaverses.
How OpenSim Works? Technology Behind OpenSim
Here is a video: The technology behind OpenSim
To use OpenSim, one requires downloading and installing it on Windows and Linux PCs. On Windows, it runs over the .NET Framework and on Unix-like machines over the Mono Framework.
The software is released under the Berkeley Software License or BSD License, which allows embedding of OpenSimulator in products because it is commercial-friendly.
On the other hand, a person willing to access 3D content created using OpenSimulator requires downloading and installing OpenSim viewers such as Firestorm and Singularity. From here, they can browse OpenSim content on any region or grid by inserting an access URI same way as using URLs in web browsers.
OpenSimulator software is built in C# and can be expanded using plugin modules. Each of these plugin modules can be developed and loaded separately and independently to add functionality to the server.
The software can operate on standalone or grid mode with a single process handling the entire simulation in single-mode and multiple processes handling different simulations and running on different machines in the grid mode.
OpenSim services running within Robust.exe.
[image source]
- OpenSimulator supports two scripting languages, Linden Scripting Language written by Linden Lab company, and C#.
- An architecture known as Hypergrid allows a user to teleport between virtual worlds, or as commonly known, regions of OpenSim. The architecture provides a hyperlinked map that indexes public grids. Using this architecture, grids can retain teleportation links to each other even when they are not on the same grid.
- The OpenSimulator Scripting Language (OSSL) used to write OpenSim extends the Linden Scripting Language used to build Second Life. This is done by adding extra functions that the OSSL understands. .os functions are used in the same way as .ll functions.
Here are examples of those functions:
osTeleportAgent(): This allows one to teleport agents to a different position and region in-world.
osSetDynamicTextureURL(): This allows one to display an external or dynamically generated image in-world.
Designers in OpenSim and Second Life use 3D modeling and animation programs and software plugins such as Blender to build meshes from scratch or to customize 3D objects and simulations. These can be exported to OpenSim and Second Life for use as avatars or other objects in OpenSim grid regions.
Blender software can be used to build an OpenSim and Second Life mesh model:
[image source]
Here is a video: How to import meshes in OpenSim
Second Life And LSL
The below example shows Avatars attending meeting in-world in Second Life, all with voice, video, and images, gestures, etc.
[image source]
Second Life is Linden Lab’s online virtual world that was developed in June 2003. Linden Lab was formed in 1999 by Philip Rosedale. The intention was to develop hardware that would allow people to immerse themselves in virtual worlds.
Just like OpenSim, the user of Second Life can purchase 3D virtual land of given sizes on Second Life and build 3D objects, scenes, and places for fun, business, non-profit matters, or for organizational matters.
Second Life has so many 3D objects and assets built by individuals, groups, organizations, and companies who offer them either for free or at a cost. Individuals can use them for free or buy to use on their land, as they are or after customizing them.
- Individuals can also build or purchase or get for free, avatars – digital human representations – that they can use to interact with places, objects, and with other avatars.
- Second Life uses LSL coding or scripting language, which is a C#/Java-like language. The LSL language gives behavior to primitives, objects, and avatars on Second Life.
Click here for a video on Basics of scripting
Linden Lab scripting on Second Life is represented in the below image:
Properties of OpenSim:
- The software supports the online multi-user 3D environment.
- It supports real-time simulator side, Physics Simulation with multiple engine options including ODE.
- Supports multiple clients and multiple protocols to allow access to virtual worlds at the same time.
- Supports clients that can create 3D content in real-time. Real-time terrain generators and landscape generators use powerful selectors, blend-maps, and masks to paint directly onto the 3D view and see the results immediately.
- Supports in-world scripting using Linden Scripting Language (LSL)/OpenSimulator Scripting Language (OSSL). The scripts can be added from region modules without patching the OpenSim code. Support of LSL is advantageous because a large stock is already built in this language and this can be used on OpenSim.
- Supports scene modules that allow editing and customizing of virtual world applications.
Multi-user 3D environments in OpenSim:
Multi-user 3D Virtual Environments (MUVEs) and Massively Multiplayer Online Role-Playing Games (MMORPGs) are displayed online in 3D simulated spaces.
Users can interact represented as 3D avatars. They can do many activities including walking, flying, and running, jumping, and dancing. The avatars and 3D objects can be designed based on the user’s experience and imaginary appearance.
How To Create 3D World Using OpenSim?
How do I go about creating a 3D world using OpenSim? Where do I host it? And how do I manage it? Where do I start?
Grids allow you to rent and host virtual land on them – commonly called regions or sub-grids – or get one for free offers and on this virtual land, you can build objects such as houses and scenes such as mountains and grasslands, etc. on these regions.
Most of these grids have free assets or objects you can start with when building a virtual region. Other objects and scripts are bought on marketplaces and grids such as Kitely. You can then sell virtual items using cryptocurrencies or real-world money.
For instance,
Let’s say you want to become a grid owner, meaning you will need to host your grid on a server. It will cost you more than renting virtual land on a hosted grid, or standalone virtual world creation software such as DreamWorld.
Let’s say you want to shoulder the cost and then afford more land to rent out.
In that case, you would need to create your grid OAR (OpenSim ARchive) files or IAR (Inventory ARchive) files and then host them on cloud or decentralized blockchain storage. Users can then visit and explore these. You can also have a web page for publishing information about your grid and allowing for the discovery of the grid on search engines.
To create your grid OAR files, there are many places from which you can find free OAR and IAR files to start with as templates for your grid project on OpenSimulator software, and then customize them as you wish. OutWorldz.com is a good place to be considered.
Alternatively, you can use 3D objects and/or the OpenSimulator or other software to create .oar files from scratch for your private, group, or organizational grid. The files have the .oar extension and are archives.
A grid may have multiple regions, which you can build one by one with each region having a single OAR file or combination of them.
OAR files contain the grid region’s information and allow transporting the region from one simulator instance to another. They allow transporting of the XML information about the size of regions, prism shape, textures applied to prisms, and items within prisms including sounds, notecards, and scripts. The files also contain terrain information.
Once you have your grid OAR and IAR files ready on your computer or region simulator, there are multiple grids hosting services you would want to consider based on their features of courses.
You can get hosting services that help in setting up and configuring your grid, installing and patching software, for instance, in-world currencies, managing network connectivity, and load balancing, backing up and providing customer support.
Few of which we know are Dreamland Metaverse at the cost of $45 per month, Zetamex Network at the cost of $198 per month, DigiWorldz which is also a grid by itself and hosts grids at the cost of $200 for the first server, GreekLife which is also a grid by itself and hosts grids at the cost of 57 Euros for mini-grids, YourSimSpot at the cost of $25 per month for a region, Oliveira Virtual Lands at the cost of $12 per month, and many others.
A hosting service can upload your grid OAR and IAR inventory files in addition to the above. Others will add website front end services for your grid, and many other custom services.
Once it is uploaded to a hosting server, users can download OpenSim viewers such as Firestorm and log onto your grid.
Example: We used DreamWorld software to create a mini-grid on a P.C. It is easy and you just need to download the software from the homepage, install and run OpenSim.exe to login with default password and username, then load a pre-build region that you can customize, save it into your local drive and back it up, or upload it to other grids, then change back the default password and username to yours, all in less than 30 minutes.
The DreamWorld software allows you to load as many regions to your grid, change region sizes, change the default viewer, and decide whether your avatar should be visible or not.
As shown in the below image example, creating a grid with Dreamworld software takes less than 10 minutes.
[image source]
OpenSim Clients And Viewers
OpenSim viewers are the equivalents of web browsers used to access the Internet. They are developed independently by third parties to OpenSim software and can be downloaded, installed on a computer or phone, and used to log onto OpenSim grids.
Content created using OpenSimulator software can be accessed using different viewers as follows. First, you have to sign up with an existing OpenSim grid or create yours, then save the login information to use on the viewers.
The viewers are installed on a computer or other devices. Different viewers are compatible with different computer and device platforms. Viewers are developed by third parties different from OpenSim software developers.
A person willing to access content created with OpenSim, using these viewers, requires pointing the viewer to the grid they created an account with or inputting the login URI, which is a website’s URL equivalent to the viewer after installing it. This URI points to the grid and region is what the user wants to teleport or hop to. Then logging in to the grid.
When using OnLook viewer to view OpenSim content, you log in to a grid you previously signed to. You point the viewer to the grid and start location.
- Cool VL Viewer: Oldest OpenSim viewer.
- OnLook Viewer
- Firestorm Viewer: Most widely used. The successor to Phoenix and v3 based viewer.
- Kokua: v3 based successor of Imprudence.
- Radegast Metaverse Client: Light client.
- Singularity: Snowglobe-based.
- Dayturn: Derived from Kokua.
- Scenegate: Derived from Alchemy viewer. Full UI accessible but best for just visiting virtual worlds and not for building.
- Lightweight text: It is for only OpenSim viewers to help users connect to a grid, chat and manage inventories, etc. It can help take care of messages, or when using systems with low specs, or to just bring your alt online without having to logout the main avatar. They include JOpenMetaverse which is Java-based and compatible with Android, Windows, Linux, and MacOS; Metabolt; and Mobile Grid Client for Android.
Physics Simulations And Scripting In OpenSim
Using OpenSim to simulate animal and human movements is depicted in the below image.
[image source]
Physics simulation is based on a mathematical model that defines the state of a media at a given time. Each of the variables in the mathematical model defines the state or position or velocity of the entire or part of the system.
The mathematical model is based on a set of differential equations describing the evolution of variables over time. The equation is determined by the forces and geometry.
Once a person has constituted or written an equation, the next step is to get the computer to solve the equation. The process to get the computer to solve the equation is known as numerical analysis. Most choose the Runge Kutta method.
For simulations involving collisions, additional steps ensure detection of the collision and backing up in time to the moment before the collision, which allows modifying of the velocities.
The rest of the complicated steps involve representing the simulated object on the computer graphics, handling the user inputs, and synchronizing with real-time.
- A simulation engine or the Physics Engine does the entire math and presents the visual objects for a display to and modification by the user. OpenSimulator uses the OpenDynamicsEngine or ODE as the default Physics Engine although it also supports basic physics or POS (Physis of Simplicity) engine.
The engine is an algorithm that models the behavior of 3D OpenSim or Second Life objects. They are added on OpenSim software as plugins.
- ODE supports collision with all cubes, spheres, cylinders, etc. and all combinations of distortions including hollow, taper, twist, path cut, etc. It also supports collision with sculpted prims when combined with Meshmerizer.
Example of simulation in OpenSim:
If you want to simulate the damping of a mass attached to a single spring that is then attached to a wall, you can define a mathematical function specifying the mass of the object attached to the spring, the damping value, the spring stiffness, the length of the spring, and the fixed point.
The physics, in the above example, maybe defined by starting with the fact that “the force generated by a spring is proportional to the spring stretching distance.
In other words, Fspring = -k x
where x is the stretch distance, k is the spring constant.
However, a damping or friction force will resist this force or motion in the opposite direction;
Fdamping = -bv, v being the velocity of spring and b the damping constant.
Therefore, Total resultant Force F = Fspring + Fdamping = -k x-b
By Newton’s law of motion, F=ma, and using a=x” where the definition of acceleration is the second derivation of position;
mx”= -k x-bv OR x” =- x – x’; which is the differential equation defining the damping motion of the spring.
If you graph the equation on the simulation, you can see the simulation in real-time. The simulation can be relayed on display. We can also solve the second-order differential equation numerically using the Runge Kutta method by converting it to a first-order differential equation.
Real-time terrain generation and landscape generators on OpenSim:
- Rinios, for instance, is a real-time animation tool that sends animation data to the viewer in real-time.
- Terrain. Party, a web-based tool, allows converting real-life world map terrains into height maps that can be imported as .png files and used in OpenSim.
- Terraingen generates terrains for use in OpenSim from USGS DEM files.
- Daylon Leveller produces terrains for OpenSim from different sources. It uses paint-like tools and filters to create features.
- RegionGenerator can produce Region XML files.
- OpenSimulator-Regions-Generator is a region generator for PHP, PHP7.
How in-world scripting occurs on OpenSim?
OpenSimulator Scripting Language (OSSL) language is used for scripting in OpenSim. It follows Linden Lab Scripting but has extra functions. The procedure of writing scripts on OpenSim is similar to that of writing scripts in Second Life.
Without going into details, once these scripts have been written, they can then be compiled by the program compiler and run on OpenSim clients.
Other tools and processes on OpenSim
Other tools on Second Life and OpenSim include log analysis tools, money servers such as the modified version of the DTL Currency Processing called DTL/NSL Money Server, monitoring for stats analysis, 3D head tracking software, and proxy systems.
Major Applications Of OpenSim And Second Life
FlexSim software used in simulating a factory floor and operations:
Area of application | Description |
---|---|
Gaming and Leisure use cases | - OpenSim is applied in games that have goals, rules, challenges, and interactions as key components. Allows for 3D immersive gaming. |
Education Use cases | - Virtual classes and rooms are now commonplace on OpenSim grids. Trainers and educators can purchase land and build objects for training and education. - Virtual classes, content, and lessons can be organized based on pedagogical studies. |
Medical Use cases | - Virtual worlds, alongside or separate from virtual reality, can be used to simulate medical labs and procedures such as surgical procedures to train medical staff virtually without requiring them to travel. - It has also been applied in simulating viruses and bacteria to help understand how they attack human bodies. - Virtual labs can be used for learning and testing without having technicians on dangerous grounds. |
Training such as in Army | - Virtual worlds can build professional simulations to train and impart specific skills to soldiers and officers. This allows the training of soldiers without exposing them to any danger or risk of death and saving on training costs. |
Meeting – business and social and other non-business meetings | - Virtual worlds can have virtual meeting rooms and conference rooms e.t.c. with specific tools for presentations, including whiteboards, support for notes, and comments. - Businesses and organizations can manage workers remotely with full benefits of near-real-life demos and explanations. Workers can complete tasks remotely, in an immersive sense. - Managers and employees can collaborate and do tasks together, remotely. - Businesses can demo their models and plans to partners and investors before proceeding with partnerships. They can demo solutions to customers, remotely, and more realistically. |
Modeling and Designing | - Real-world objects can be expressed more realistically in 3D as if they are built-in real-life. - Technicians can discuss and collaborate on designing and modeling by hosting more realistic meetings and using 3D objects. - People can collaborate and suggest changes and modifications to the designs and models before proceeding to production. - Vehicle manufacturers use virtual worlds to test their models and designs. |
OpenSim can be integrated with other software such as Sloodle to enable training backed by data evidence.
[image source]
Conclusion
We have been studying OpenSim as a client-server technology that enables the production or generation of 3D virtual worlds and their viewing and exploring over the Internet using OpenSim viewers such as Firestorm. Sometimes, these environments can be made compatible with virtual reality viewers or headsets but in most cases, this is not so.
We saw that OpenSim employs a physics engine and scripting – sometimes real-time scripting, to produce these environments.
Ideally, a mathematical model is applied to simulate objects. A mathematical model is a mathematical function that defines the behavior – orientation, shape, size, color, etc of a particular object at a given time. Usually, 3D worlds are complicated mathematical models than can be explained here.
Finally, we looked at the obvious application of OpenSim. It is not only being employed in gaming, but companies are also using it to advertise their products by taking advantage of the immersion it generates. Simulations are very effective for training, in and out of the military industry, virtual meetings, modeling, etc.