Saturday, July 23, 2011

Multi-user Sim-on-a-stick

CAUTION: This is a pretty old post, SoaS may have changed, probably has. Just keep in mind...
I love how accessible Sim-on-a-stick makes OpenSimulator. Just plug it in and double click one batch file and after a succession of pretty windows a virtual world awaits. It's like a virtual Rube Goldberg machine unfolding right before your eyes. By default the Sim-on-a-stick flavor of Opensim is for a single user. So teachers with access to a bunch of PCs (yes, it only runs on PCs so far, but I'm sure some dedicated people will figure it out for Mac) could make as many copies on USB drives as they have students, hand them out, and let students manage their own personal sims. Or students could pair up or whatever.

I mentioned in a previous post that an adventurous teacher could configure a Sim-on-a-stick for multiple users, so you'd have all of your students logging into the same sim from their own computers. This would be nice for collaborating on a project, like when I had students build The Parthenon together. In keeping with the Sim-on-a-stick's ease-of-use, here's a step-by-step to doing that. So here goes.

You can go ahead and plug in your USB stick, download the latest version of Sim-on-a-stick from the website and unzip it to the stick. Before you run the Opensim_autostart you have to change a few things.
First, open the folder 'config-include' on the stick at the path in the image.
Find the file 'MyWorld.ini'. 
Right click on it and open it with Notepad.
Before you can make the necessary changes to it, you need to know your computer's IP address. So click Start and in the search bar (or Run window if on XP) type 'cmd' and hit enter.
At the C: prompt, type 'ipconfig' and hit enter.
Many lines will fly by, but just scroll back up until you find the section for your IP address. Now, if you are connecting to your network wirelessly, look for the IPv4 Address under the Wireless section. But this setup will cause considerable lag for your students in the sim. Better to connect with an ethernet cable, in which case you will find your IP address in that section. Write down that number. You can type exit and hit enter to close the command line. NOTE: Your IP address does not stay the same, but is likely to change whenever you restart this computer. So to keep this setup you can just not turn off this computer, otherwise do a quick check on the command line to see that it hasn't changed. If it has, you'll need to modify the IP address settings you make in the following steps and to the students' viewers when they log in.
Go back to MyWorld.ini and find the line under [GridService] with the IP and change that to the IP you found with ipconfig. Save and close that file. UPDATE: In practice I've found it best to change ALL occurrences of the IP in MyWorld.ini, just do a search and replace.
Now go up one folder and find the Regions folder and open that.
Find the RegionConfig.ini file, right click on it and open it in Notepad.
In this file, find all 4 occurrences of the ExternalHostName IP address of and change them to your IP. Save and close this.
NOW you can double click the Opensim_autostart file. Sit back and watch the pretty text and windows fly by. The last thing to open will be the Imprudence viewer. When that opens you'll see orange planets on a black background. 
At this point you have the option of creating your students' accounts for them or letting them create accounts when they log in. If you choose the former, click "CREATE ACCOUNT" and fill in the relevant information for each of your students. 
To log in to your sim, use the Simona Stick (pswd: 123) account and log in using the fields at the bottom. So now you are logged in and your students have accounts (or will make them).
Now for your students! They will need the Imprudence viewer on their computers for them to log in to your sim, so you will have to get that installed. 
Once they open it they will see a different default screen. They should click the Grid Manager button, click Add new grid, for Grid Name type whatever name you want for your sim, and MOST IMPORTANTLY, for Login URI they need to type http://your.IP.add.ress:9000/wifi (NOTE: in a recent version this has been changed to http://your.IP.add.ress:9100/wifi), and the same under Login page. This will direct their viewer to your computer where your sim will be running.  
They can click OK and select that sim in the grid dropdown. Once they select it they should also be seeing the orange planets.
From here they either create their accounts or simply log in! Then the fun can begin!
Ahh, a couple more things. Your entire operation is running on the USB drive, so don't ever pull it out while you have the world running! And you can't just X out of the various windows to shut down. Here's the shutdown process:
Make sure your students are logged out of the sim and log out yourself (In Imprudence, File > Quit).
Now at the Opensim console, type 'shutdown' and hit enter. Various shutdown processes will commence and that window will close.
Then go to the MoWeS window and click 'Stop server'. Wait until both Apache and MySQL are not running, and click 'End'. Now you can take out the USB drive.


Lucy Barrow said...

Oh my gosh, Erik, this is incredibly exciting! I have used the standalone version of USB OpenSim but had no idea that it was possible to configure it in this way! This opens up many new opportunities for multiple, easy to setup projects. Thanks so much for sharing!
Lucy :)

Erik N. said...

Thanks, Lucy! Yes, a lot of teachers in my area have a problem using virtual worlds hosted outside their schools because the firewalls are so tightly controlled, keeping necessary ports closed, so this gives them an option to keep it inside the school and have students collaborate, the best of both.

iliveisl said...

holy cow! i am stealing, err, sharing your info on the iliveisl blog because this is HUGE!!!

thank you Erik!

Erik N. said...

That is awesome. Don't you know, information wants to be free!

mimetic.core said...

Nicely done! Great tutorial, too. What's nice is that aside from the educational value of this setup, it can suit other environments as well :)


Beacara said...

Thanks Erik! I added the tutorial to my (german) blog

Wolf Baginski said...

You can ask for the network to assign a fixed IP address to the machine the server is running on. Talk nicely to the network adminstrator.

It bypasses the problem of the IP address changing but there are places I wouldn't want to be visible to the management.

Erik N. said...

@Wolf, yeah I have a fixed IP for my Diva regions running on a desktop and I guess you could do the same with the stick. Makes me wonder what you couldn't do with the sim-on-a-stick that you can do with it running on a PC. Hypergrid? One limitation must be the USB itself, getting data in and out.

Mykyl Nordwind said...

Using SOAS 7.4 I cannot get this to work. I have tried it with an existing single sim, a fresh single sim install, and a fresh 9-sim install - whenever I make the changes you note here and try to run the simulator, I get an error that says "SoaS 1 and SoaS 1 have the same uuid" and the simulator exits. Has something changed since this blog post was made, or am I missing something?

Erik N. said...

Unfortunately I have not used SOAS for a while and haven't kept up with the versions. It looks like it either does have duplicate UUIDs in the region config file, though that wouldn't make sense on a 1 region sim, or for some reason script is double checking UUIDs when it should only check once. Wish I could tell you, the great google seems to know nothing about this error you are getting.

Hui Teki said...

For MyKyl, I had exactly this problem yesterday. I had made a back up copy of MyWorld.ini before I made changes to it , and left the .ini on the back up. Opensim trys to load all the .ini files in /bin/regions. All worked once I change the extension of the back up copy to .bak :-) !!

Hui Teki said...

Thank you for this very useful blog post. I do not seem to have voice working, although SLVoice is apparently running. Have you had any experience with SLVoice in SimonaStick?


Erik N. said...

Hui, Thanks, cool this post continues to be useful. SL Voice requires a Vivox license to serve out voice. The workaround for a long time was to go through a painful Freeswitch server installation but about a year ago Vivox started offering licenses to small users if you just contact them. I see now they have a form online you just fill out, they will contact you and give you the settings to put in your Opensim.ini or maybe it can go in the MyWorld.ini if you put it under the right section heading. I'm not sure what that is, though. Oh, here is the Vivox service request URL:

Kate said...

Hi Erik, I have been using multi user for so many classes and learning projects over the past year and again this year in Australia. It has been possible because of your sharing this information. The kids love multi user so a HUGE but very late TY for sharing.Here is my school blog and you can see all the projects we have done I'm also using it in this school

Kate Booth

Erik N. said...

@Kate, What remarkable work you are doing there! Luke's ship--amazing!! That's the type of experience that will last him a lifetime and his partners if it was a team build. Fantastic of you to facilitate that. I'm realizing what a democratizing technology sim-on-a-stick has become because it allows teachers and technologists to implement ideas like this when they don't have access to their schools' network infrastructure to configure a sim on a box. Great stuff, thanks so much for your comment.

Wolf Baginski said...

I have a 16-sim SoaS system running using your IP address changes.

1: 64 bit Windows on a 4GB machine. Don't try something that big with 32-bit Windows. There are some nasty catches on RAM use.

2: For a viewer running on the same machine, you can still use the loopback address of

3: Having a viewer on a separate computer lets SoaS use more RAM and more clock cycles, but the OpenSim console still needs to be accessed for some things Diva's WiFi add-on becomes important for that.

4: I didn't upgrade my SoaS until recently, so I am still getting up to speed on some of the changes. Depends on the school situation, of course, but I would be cautious about using/allowing mesh objects. They can be heavy bandwidth users.

My shift to 64-bit Windows has made SoaS much more flexible. It gave me about 1.2 GB more usable RAM

Erik N. said...

That's a great setup there. It's great to see people keep stretching the potential of SoaS to bigger uses. I was wondering how many concurrent avatars you get in a sim, how many can it keep up with?

Anonymous said...

so cool, i got it working over my local network! but it seems its not as easy as just forwarding your ports in your router and giving a friend your external ip so they can log in :(

if it is that simple i must be doing it wrong. any ideas on opening it up to the internet so anyone can join?

Erik N. said...

What happens when they try? Can they see the welcome screen but the login handshake fails? If that's the case there is something not set up right in the router, like you need NAT loopback or the right port forwarding (usu. 9000). And forwarding for both TCP and UDP. I never did those things myself, just had someone do it at work, sysadmin.
If they can't see the welcome screen at all then it's maybe the wrong IP.

bob holmes said...

looking for a confugration to setup open sim-on-a-stick so my frends can come to my sim over the net
thank you

Erik N. said...

This is the hardest part, requiring port forwarding on your router. Fortunately it works the same as on a standard Diva install and there is a pretty thorough explanation here:

Tim R. said...

I followed that link you said to go to and it worked! Now I have external users logging into my sim-on-a-stick. Thanks!

Patrick Sullivan said...

Hi Erik,

I also work in New York at a large middle school in Brooklyn. Was looking to use SOAS with the firestorm viewer to take advantage of MOAP. However, it says something about not returning gridinfo? Do you have any experience with this?

Erik N. said...

Looking back over my post I'm thinking it should say to replace ALL occurrences of the local IP ( with your computer's current IP in the MyWorld.ini file. That could be causing it not to get the Gridinfo. I haven't used Firestorm but have often had that problem with other viewers and still been able to log in.

Anonymous said...

I changed all the ip address in the MyWorld.ini and changed them in the regions file and now cant log in a all.
Any suggestions?

Erik N. said...

Anonymous...hard to say, you are sure it's the correct IP? Double check. I see also there is a big update to SOAS to version 0.8. We have gone to Macs in my school so I can't test this out now.

Anonymous said...

Hi Erik,
thanks for your valuable support.
I installed simonastick on one PC and can use it from other PCs via imprudence viewer but not via Firestorm/Phoenix viewer. Whenever I try to add a grid with my server ip, I get as reply, which is the local adress.
Any idea?

Georg Marshall said...

Hi Erik,
thank you very much for your help.

This is really great.

Just one little remark,

the current version of Simonastick for the students accounts needs the url

and now longer "http://your.IP.add.ress:9000/wifi"

Again, thank you very much for your work!

Erik N. said...

@George Marshall, thanks for the tip! I haven't kept up with this SoaS project so that's helpful to know that the default port has changed. I'm glad you could get some use out of this documentation.

Melefa David said...

Hi great post! I just tried this but can't seem to get it to work. do all computers need to be connected to a homegroup first or just the same wifi connection? thank you.

Erik N. said...

@Melefa David, sorry I am just seeing your comment. I hope you overcame the issues with connecting a group of computers. All they should need is to be on the same wifi.