Friday, January 15, 2010
Rotating Sculptures in OpenSim
I've been playing around with overlapping rotating volumes in OpenSim. They make nice sculptures but could also make for nice visualizations of concepts in Calculus. Some math teachers got excited when they saw them.
Friday, January 08, 2010
Virtual Architecture Course in OpenSim




Possibly the most exciting event was the sim crashing. At one point everyone reported losing control of their avatars. I logged in to the server to see a big alert and lots of red errors on the console. They all logged out and as I restarted one student mentioned a warning message she had gotten when linking the prims in her house that the limit for linked objects was 255. She had the craziest staircase with dozens of irregularly placed steps that turn out to be really easy for avatars to ascend and descend.

Virtual building is an amazing creative medium for teaching. The students learned the tools fairly quickly and in just a few classes have applied them to developing such unique visions for their spaces. I'm interested to see how they want to wrap up the class. I'll leave them the option of working on their creations when they have time after this week but this will end our collaborative effort.

Tuesday, January 05, 2010
Computers and Hard Work
This week I'm teaching three special courses for our Winterim session: Virtual Architecture with OpenSim, Mix Your Own Tunes with Audacity, and 3D Storytelling with Storytelling Alice. I'm having a great time. I love putting building tools in kids' hands and watching what they will do with them. The students range in age from 9-18 in three separate age groups and I've noticed a common reaction to the content of all of the classes. On the first day, once I'd finished my intro to each program and the goals of the course, students started working and very soon became whiny and frustrated. Across the board, they were confused by the unfamiliar interface of each program as well as the workflow required to complete different tasks. Once they realized what making a song out of audio clips, scripting a story, or building a house piece by piece was going to involve, they pushed back and wanted it to be easier.
My response was to say that we had four more days (1.25 hr classes each) to work with this and that they would get used to it once they decided what they wanted to do. Basically, each class is just a lot of time to work! Since then they have complained--mostly to their computers--but it's hard to get them to stop when it's time. They have settled into a rhythm and are focused on making their musical, animation, or building ideas work. Almost without exception I haven't had to tell any students to get to work. One student confessed that she is still completely lost in Storytelling Alice and will need more guidance. And another student finished one audio mix and exported her MP3, saying, "There's no way I can start another one right now." I know how she felt. You finish a big project that's required a lot of focus and the last thing you want to do upon finishing it is jump back into a new project.
When students complain about work on the computer being hard it's often a knee-jerk reaction to having to think and focus with something that in most other contexts is used for entertainment. But they will stick with it through all the complaining if they feel that what they are doing is meaningful.
Wednesday, December 30, 2009
ScienceSim: Highly Recommended


Some other simulations are promised but not always accessible. The project is comprised of different people hosting their own sims and linking them to this main one. So if someone's sim isn't running at the moment their teleport link won't work.
Wednesday, December 16, 2009
Making Robots Real: Constructionism and Robotics
I'm finally teaching robotics the way I've been wanting to for the last 5 years. Really the way I've been wanting to teach period for the last 17 years! Early on in my teaching career I read about constructionism and wanted to get my students doing writer's workshop, writing their own meaningful stories that intrinsically motivate them to become better writers. It never happened to my satisfaction because I could never find the right balance between teaching didactically and giving students the freedom to write what and how they wanted. Suddenly I find that it's coming together in my 9th grade robotics class. My students are inventing their own robots, and long-story-short here's how it happened.
Last year was my first year teaching 9th grade robotics and I went into it with the intention of making it as rigorous as they could handle with a focus on fundamental programming concepts. So while it was project-based in the sense that they produced projects, such as a vehicle that could follow a course taped out on white paper, I laid out a series of goals for them to reach so they could develop each project with progressively more sophisticated algorithms. What ended up happening is that a few students completed and understood everything, most got some of the way through the challenges, and some barely got past the first step, having been stuck just getting the project built and communication down. At no point during the class did I feel that they had ownership of their projects. When they completed the projects I gave them all they wanted to do was sit and talk rather than try more ideas.
This year I decided to give them more control over what they made and let their needs dictate the programming concepts they would learn. From the outset I gave them very few parameters--the first project simply had to involve programming the LED display, the second project using motors to illustrate gearing up or down and a switch to activate the motors--and have given them little explicit programming instruction. They have been much more involved in their projects and there have been many great opportunities to teach programming concepts that have been useful to them. In one case, a student had three procedures that were separate actions of her DJ robot and to get them all to run, she was typing their names separately in the direct command line. I hadn't taught them about creating a 'main' procedure that calls the sub-procedures. But once I showed her that it made sense right away. She was able to then go on to show the class and teach them the concept in a more effective way than I could have.
I think one key thing going forward will be giving them opportunities to explain their programming structures to the class, both to help them articulate what they are doing and to share good ideas that other students will hopefully want to try out and learn.
Looking back on last year's class, I realize I was not letting the students develop as much ownership of their projects as I could have by making the point of their projects being to move up through this sequence of concepts in a stepwise way. Rather than discovering the need for programming tools I was telling them when to use them so they never really took any interest in figuring out what they were for.
Tuesday, November 17, 2009
Wav2Rso: Making it Work Properly

Wav2Rso (scroll down) is a great program for doing one thing--converting WAV audio files to RSO format so they will play on a Lego NXT robot. You can take any WAV file--one you record or one you download from a website like findsounds.com--and put it on your robot. How fun! The only catch is that for some reason Wav2Rso is set to a sample rate of 8000 Hz. The typical WAV file is more like 11,025 Hz, so when you convert it, the sample lowers in pitch considerably and you have a quiet, baritone robot. The fix is to open the WAV file in Audacity or another audio editing program, edit the preferences to set the sample rate to 8000 Hz, then export it to WAV again. This file will convert properly and at the right frequency.
Friday, October 16, 2009
OpenSim in the Classroom: Diva Distribution Makes It So Much Easier
I have a sim running on XPSP3 on a desktop with a static IP. I set up a network switch so I can run network cables to a class of students' laptops with the Second Life Viewer with a command in the shortcut that makes it connect to the IP of our sim rather than Second Life online. A little more on the details of my setup is here. And here is the step-by-step for getting it up and running:
- Desktop running Windows XP SP3, assigned a static IP by the DNS server, no monitor, I just log in remotely. (Ask your system administrator to assign the IP if you, like me, can't.)
- Download the zip file for the latest Diva Distribution here. Unzip it to a folder in your Program Files folder called OpenSim or whatever you like. Diva is one of the core developers of OpenSim and has come out with this great binary distribution with good documentation and an update utility, which is an otherwise difficult task. Additionally, Diva has included several major improvements in the program, including 'megaregions,' or a seamlessly connected grid of regions. The default here is 2 X 2, or a total sim of 512 m X 512 m.
- Now look in your downloaded folder for the documentation. Read 'install.txt' first just to get an overview. Then read 'MySQL.txt.'
- Then install MySQL 5.1. There are good instructions here, though a little old. Stop following it when he gets to configuring the opensim.ini file because it's for an older version of OpenSim. The Toad--MySQL GUI--part is for an earlier version of Toad, but the idea is to create a root account and create a new database called 'opensim'. Then create another account named 'opensim' and any password you like that has full privileges to the opensim database. If you prefer you can use the mysqladmin commands (tutorials are here and here). That's also the method explained in MySQL.txt but you might need a little more to go on than just what commands to type. No need to create any tables. OpenSim will do that on first run.
- Download and install the .NET framework 3.5.
- Now follow the steps in 'install.txt.' After running OpenSim.exe in the steps you'll see lots of colorful commands fly by and hopefully no errors.
- Next you'll need a viewer. I tried Hippo and it's great except that if students are connecting on Windows machines with network accounts Hippo has no way I could figure out of saving the sim IP as the default for all users on the machine. Instead, I downloaded the Second Life viewer, installed it on the student laptops, right clicked on the desktop icon (which will need to be moved to the All Users desktop and given full permissions to 'everyone') and added the following flag in the 'target' field: -loginuri http://fixed.ip.ad.dress:9000/ That reroutes the viewer to your sim rather than actual Second Life on the web. If you don't want the occasionally racy SL screenshots showing up either you can add -loginpagehttp://fixed.ip.ad.dress:9000/?method=login.
- Now with your sim running, open the SL viewer from the icon and login with the master avatar account you created during the config. I hope it works! Enjoy it for a bit before tackling the next steps.
- For voice chat you need a voice conference service called FreeSWITCH. At the time of this writing there is a new option for voice called Vivox that sounds better and is fully spatial while FreeSWITCH isn't. But Vivox requires a "customer admin account" from Vivox and I don't know how to get that. (I've since found out it's a commercial application that costs thousands of dollars.) You can download a precompiled binary of FreeSWITCH here, and, yes, you have to install the Microsoft Visual C++ 2008 Redistributable Package like it says before you run the Freeswitch program.
- To configure Freeswitch to work with OpenSim, you have to change some config settings in a few xml files, explained here. This video also demos the steps. One confusing part of this video is that he's using v1.22 but he says anything after 1.22 is compatible with FreeSWITCH voice. It turns out the option to enable voice only exists in v1.22, but you switch to 1.23 to use it. More on that later.
- Now you're ready to configure settings for OpenSim in the OpenSim.ini file. Find the section labeled Freeswitch and configure those settings as shown at the bottom of the Freeswitch config instructions.
- Now you can start up Freeswitch. Double click freeswitch.exe. Ignore the red error messages (really!). Start up OpenSim exe.
- Open your viewer (v1.22) and log in to your sim.
- You have to enable voice chat for the estate. Click Edit > Preferences and under Voice Chat make sure it's enabled. Then click World > Region/Estate, click the estate tab and make sure "Allow Voice Chat" is checked. Finally, right click on the terrain, click About Land, click the Media tab, and click "use estate spatial channel."
- Then log out and log back in with v1.23. To use voice, make sure your headset is plugged in before you start the viewer and to talk click the talk button or the lock next to it.
- Once these things are set, you need someone else to log on or you could talk to yourself over two computers. To talk, look for the talk button on the lower right. Click the lock next to it to toggle talking on or just click and hold the talk button while you're talking.
Tuesday, October 13, 2009
Diva OpenSim Distribution looks promising
I've been thinking I will need to upgrade my OpenSim installation from 0.6.5 to 0.6.6 for hopefully some increased stability and reliability. This may be the ticket. I'll have to wait until we go through one round of the drama project, though. Don't want to break the sim at a crucial time.
Friday, October 02, 2009
OpenSim in the Classroom: Just Avoid Wireless
An app like this just needs more solid throughput than a wireless connection with at least a dozen clients over a single AP can provide. It just works so much better with wired computers. Today voice was crisp and clear--loud, even--without wireless and 13 clients. And I didn't let them edit appearance during the voice testing so voice stayed strong. I did confirm that FreeSWITCH is not spatial, unfortunately. Everyone is audible to everyone else at the same level no matter their relative grid position. We (the drama teacher and I) though we might be able to get small groups rehearsing simultaneously in different parts of the region, but that won't work.
The only problems were two accounts getting repeated failed logins, alternating between a "session crashed" message and a message that were already logged in when trying to log in. Turns out this resulted from their data not saving properly during an earlier session using wireless. This drove me nuts until I figured out a fix. Log in to the MySQL opensim database (using Toad or whatever MySQL GUI you were able to get, or MySQL admin if you can), go to the users table and find the user in question's UUID. Then go to the agents table and you'll find that that UUID has a few field values that the rest don't. AgentOnline will be 1 (true) instead of 0 (false), so change it to 0. LogoutTime will say 0 so you can just insert another user's value there. Then the currentPos will have some null value codes so just insert another user's values there, too. The user should be able to log in again, no problem. Since it's clear the crappy session data resulted from a poor connection, this type of thing is one more headache that can be avoided if you stick with wires.
The only problems were two accounts getting repeated failed logins, alternating between a "session crashed" message and a message that were already logged in when trying to log in. Turns out this resulted from their data not saving properly during an earlier session using wireless. This drove me nuts until I figured out a fix. Log in to the MySQL opensim database (using Toad or whatever MySQL GUI you were able to get, or MySQL admin if you can), go to the users table and find the user in question's UUID. Then go to the agents table and you'll find that that UUID has a few field values that the rest don't. AgentOnline will be 1 (true) instead of 0 (false), so change it to 0. LogoutTime will say 0 so you can just insert another user's value there. Then the currentPos will have some null value codes so just insert another user's values there, too. The user should be able to log in again, no problem. Since it's clear the crappy session data resulted from a poor connection, this type of thing is one more headache that can be avoided if you stick with wires.
Thursday, October 01, 2009
OpenSim in the Classroom: LAN Party
Today I tried plugging 14 clients into the school network so they could log in to our sim and we could take the FreeSWITCH voice chat for a test drive. The network cables are bundled so they won't get horribly tangled so I couldn't quite reach cables to all of the computers, leaving 3 of them wireless, which may have had an effect. Anyway, with students really wanting to continue editing their appearance (It IS a girls' school after all.) I tried having students toggle the talk button one at a time while they were still editing. A couple (loud and clear!) utterances into it and the voice service dropped out. No one could toggle their talk switch anymore. Watching the console I could see avatar inventory flying into the server so I'm guessing my only option left to get this thing working is to avoid combining any significant editing with voice data. I'll try that tomorrow, in a room where I think everyone can be wired. One preparation I plan to make before starting the drama production with 12 eighth graders in a couple weeks is to configure and edit all of the avatars for the students so they don't have to spend our precious training and rehearsal time doing it. Maybe they can configure their avatars during study hall. That will go over well...
Subscribe to:
Posts
(
Atom
)