May 14, 2015 - A 3D Object Viewer

Over the next few months I will be working on a project I’m calling “Basil”.

Basil has grown out of my experiences with virtual worlds and games and thinking about how one could build a viewer to look into virtual worlds and, in particular, in a way that the virtual worlds could mix and combine.

OpenSimulator grew around the Second Life(r) architecture with a central world simulator and multiple viewers connected to same. OpenSimulator extended that model by allowing people to host their own virtual world spaces (“regions”) on their computers while connected to common services (account, asset, location, …).

That model has been further extended by the ‘hypergrid’ model which allows a session to teleport to loctions in other grids.

This has spawned a multiplicity of OpenSimulator based grids and virtual worldness has flourished.

But that is for just one type of grid. Others have sprung up and they each present their closed world with no way of hypergridding between. Continents have formed in the virtual world and there is no way of travelling between.

So, my question is: how could one build a virtual world viewer where an OpenSimulator avatar could stand next to a HighFidelity avatar?

I will describe my approach in future posts. Eventually, the GitHub project will go public.

May 9, 2015 - Restarting blog

After a long hiatus, I’ve decided to start the blog again. I have lots of design stuff I want to do around virtual worlds and I need a place to put it.

I ported the old blog from WordPress to Jekyll and had to learn Markdown along the way. Someday I’ll go off on my rant on why I hate Markdown and its cousin YAML but that is for another blog entry. They are what they are and lots of people are using them so, with grumbling, I must adapt.

The port from WordPress to Jekyll wasn’t all smooth. Jekyll supplies a conversion program that converts the WordPress database into Jekyll post entries but I found that I couldn’t get the right combination of Ruby libraries working to make that happen. The result was my own conversion routine written for C#. It’s only in C# because, at the moment, I have a full development environment for it running and, secondly, I could include the DLLs so there are no dependencies to random old versions of external libraries. If you are in a similar spot, checkout jekyll-importws-cs.

The base theme for the Jekyll version of the blog is jekyll-clean by Scott Emmons. A good starting point that I have since taken many liberties with. I like his philosophy of not including every cool library and feature in the world. This makes for easy modification and support.

Nov 30, 2014 - Update BulletSim for Windows crash

Updated OpenSimulator BulletSim with fixes for Windows crashes (mantis 7371) and building physical linkset problems (mantis 7191). The former took a while as I managed to mangle by Visual Studio C++ build environment. The fix for that was just upgrading everything (after power cycling, of course).

Feb 16, 2014 - Tweaking mega-regions

Adding the varregion feature to OpenSimulator caused me to bump into the mega-region code. The most recent commits to OpenSimulator are a rewrite of some of that code to make it easier to understand and eliminate some complexities (like creation and testing of complex border classes).

There have been some Mantis entries saying how mega-regions were broken but now that should be better. This is, previous mega-region configurations should now properly test for border crossings within the mega-region.

One side effect of the changes is to allow combining varregions into mega-regions. Although not completely tested (I figure there are some problems with maps and TPing with maps), you can mega-region’ize adjacent, same-sized large regions. Not for the faint-of-heart, but a configuration possibility.

I have been working on several Mantis entries for varregion and mega-regions and getting those problems resolved. If you find something that doesn’t work, Mantis away.

– mb

Jan 19, 2014 - varregion gets adjacent regions, maptiles and better viewer support

The ‘varregion’ source branch in the OpenSimulator source repository has been updated this last week to fix a lot of the existing varregion problems. Some things that now work:

Teleporting to and from large regions using Singularity does not crash any more. There are still some problems with using the map to select teleport locations greater than 256 but that is being worked on.

Adjacent large regions now works. For instance, you can create adjacent 512x512 regions to reduce the number of border crossings. Remember that the region coordinates are specified in 256m region count so a group of four 512x512 regions would be specified at 8000/8000, 8000/8002, 8002/8000, and 8002/8002, for instance.

Another feature of adjacent large regions is, if you set your draw distance, you can see into the other regions.

Large regions show up in the map correctly. In fact, a lot of work was done on the Warp3D maptile rendered to make it faster, more functional (it now does meshes and prim textures[1]) and to not crash.

These changes are in the ‘varregion’ source branch which is in-sync with the master branch. More testing will make it get into the master branch quicker so test and file those manti.

[1] Check out the new parameters under the “[Map]” section in Opensim.ini.example.