Thursday, February 26, 2009

Caminalcules II: Mother and her pups

Continuing along with my Caminalcule genetics activity...

Here is a heterozygous Caminalcule mother with 10 of her pups produced by selfing under incomplete dominance. The maternal script produces two gametes at random, the "pup" is rezzed and the genotype along with the degree of dominance communicated to the pup and the pup then changes phenotype.

This is of course not the way it works in the real world; the pups should be rezzed with the genotype in place but there doesn't seem to be an easy way to do that save maybe with some really clever use of llSetPrimativeParams. But my approach seems more flexible.

Here notice that roughly half the "pups" have the heterozygote's phenotype (grey) and roughly half are one of the two phenotypes (black or white) of the homozygotes.

Right now I represent a gene's locus with an SL vector type. The third position is not currently used but it could be used to store some other type of float type information related to the gene say something about its linkage position along a chromosome.

Coming up soon...Caminalcules make nookie.

Wednesday, February 25, 2009

Caminalcules I

I could work on photosynthesis forever, but must move on to get another project started. One thing I have wanted is a creature that might serve as the basis for several different modules. So I whipped together these cute (OK I think they are cute) sculpties. What I had in mind was something like Joe Camin's famous Caminalcules, fanciful, but useful as a teaching tool.

If you are not familiar with Caminalcules here is a pretty good discussion of these little critters. My guys look more like ground beetles than the original Caminalcule but I think they will do for now. I wanted to keep them fairly small and yet large enough to see and manipulate. The blue rod in the picture is an SL meter, so these are pretty small. Any smaller and the scultpie's little legs don't show well. Besides this is a good size for students to manipulate in Second Life.

My first project with these guys is going to be real simple: Mendelian monohybrid and dihybrid crosses followed by linkage. But these guys could easily be used for natural selection or ecology and I have put together a little interface for selecting the sorts of crosses you might want to do, concentrating on monohybrid crosses. Students will be able to self them(they have the potential of being hermaphroditic) or cross them with another one.

Right now there are four color forms: white, grey and black controlled at a single locus with incomplete dominance, though I can adjust the level of dominance. The 4th color form is bright red and that is displayed when one senses a compatible mate. I knew there was a use for sensor functions somewhere!

They will have litters of up to 10 pups at a time. Not to worry- the pups will be genetically modified to be sterile so they won't overrun a region!

Now to write the genetics states and functions I need. Once this is done then I will add more colors and textures controlled by different loci and allow for mutation so there will be plenty of variation for natural selection. I may introduce some genetically based behaviors as well.

Tuesday, February 24, 2009

Another Virtual Reality System

Bruce Sommerville, a member of SLED had been exploring a very different Virtual Reality system (really a plugin for your browser) called ExitReality. This system is quite different than Second Life as it is based on VRML (virtual reality modelling language), or rather its descendant X3D. As the name suggests this is meant to be a 3D extension to HTML in the web. VRML has apparently been around for awhile but has not become popular. Maybe though it is worth a look.

Bruce gives a pretty good rundown on ExitReality and he has graciously given me permission to quote from his SLED report. I will intersperse pictures from his site amongst his commentary and follow that with a few additional comments and pictures.

Bruce writes:

"Over the last few months, I have been experimenting with the new
ExitReality browser plug-in, which allows any web page to be viewed in 3D,
and used as an immersive and communicative space.

Although I have not used it in teaching yet, I have constructed a series
of activities, constituting a lesson, which utilises 3D animated models, a
variety of different audio-visual media, and lesson materials in the form of
texts (Word docs), in order to explore the affordances of ExitReality in
education. Since most of my students are international Science and
Engineering students studying in Australia, the lesson materials have a
certain ESL/Literacy flavour. The site may be viewed here:

*Please note that I did not build the bicycle, welding robot, or crane that
are used in the site, but have linked to the two latter at their original
sites on the net, and have given acknowledgements. The bicycle was freebie
from Google Warehouse. The lesson materials (obtained by clicking on the
large books) were written by me. The lesson is based on an RL lesson I have
used with my Foundation Studies students on 'Describing the Functioning of a

- Portal Crane is based on the work done by Mr. Martin Foltin and Mr. Samuel
Bartos, Department of Automatic Control Systems, Slovak Technical
University, Bratislava, Slovak Republic, Source: "Gallery", *Orbisnap*,

- Welding Robot created by University of Michigan Virtual Reality Laboratory
at the College of Engineering,

Thanks Bruce for allowing me to post your comments.

While I was using the ExitReality plugin I decided to explore a bit. I found the interface a bit awkward to use. Avatar customization is extremely limited (Simone was not happy with that!) and there doesn't seem to be any way to fly or use camera features to zoom in close to something far away.

But I really was impressed with some of the places I visited and the ability to view just about any sort of web content in the plug in, something that is lacking in Second Life. You can store sites and inventory items and there is chat including voice. So here are some representative screen captures.

I recommend ExitReality plaza as a first stop to get your bearings. It's analogous to Second Life orientation and has VRML links to various goodies and companies with sites designed for VRML.

A forest site viewed with ExitReality showing some of the texturing potential.

Here some entrepreneurs are using x3d and
the plugin to sell "islands" for 3D conferencing and collaboration. These islands are again only analogous to Second Life Islands.

Simone needs to stop and get a quick drink. Non alcoholic, of course, on work time.

Finally, a quick visit to my college's web site ( This shows very nicely what the plug in does with a site NOT designed for X3D. The results are really quite interesting!

By the way the picture in front of me scrolls much as it does on the 2D website and all the links work, though it takes you out of the plugin's viewer in to the regular mundane 2D web.

I don't know how building in X3D compares with building in Second Life but I think that if integration with the web is critical than this sort of system merits a look. You are also necessarily dependent on a 3rd party server.

You can build animations that the user can interact with, there is chat and voice and you can stream other media apparently limited only by what the web supports. It also looks like you can do some limited 3D web editing with the ExitReality but I didn't explore that.

ExitReality doesn't have the same sort of immersive feel to me that SL has and the plugin seemed pretty buggy. But it is still in Beta, so I expect improvements. I'd be interested in what other people's experience with this sort of approach to virtual reality have been and any experences in using X3D in teaching.

Building the Photosynthesis Engine VI :Calvin cycle

Last night I finished the basic Calvin cycle model. The Calvin cycle is the part of photosynthesis where carbon dioxide is brought into the metabolism of the plant (or other photosynthetic organism).

Next the ATP and NADPH from the light reactions are used to donate energy and hydrogens to the carbon atoms from the carbon dioxide.

The resulting molecule, a three carbon sugar, called G3P then can be used to make glucose or other organic compounds. Making this G3P is the point of photosynthesis!

The model rezzes the molecules involved in the Calvin cycle and it is a real three ring circus to watch. Come visit the model along with the light reactions in Carmine at:

There is still more to do in terms of design issues and presentation and particle usage...but as with the Light Reactions, my immediate concern has been with the scripting.

The model can only be toggled on or off but unlike the light reaction model, the molecules move from spot to spot at a more sedate pace.

I want to thank SL educators Azwaldo Villota and Eloise Pasteur for their feedback on this project as well as other visitors who have dropped by from time to time.

Tuesday, February 17, 2009

Photosynthesis Engine V....more nitty gritty...

Well the sensor approach outlined last time had some problems. The entire light reaction model has 18 prims. Sensors are limited to the 16 prims closest to the sensor. When the model was running, some of the parts were not conststantly sensing where they needed to go.

So this meant a rework using linked prims and learning about how to get linked prims to communicate.

The big issue was my protons which are rezzed at various times. The problem is that when they are rezzed, they are unlinked prims and so can't communicate with the rest of the model using the link communication functions.

The strategy that worked was to first rezz a proton, then have the linked prim that rezzed the proton get the keys for the required places the protons need to go to and sending that information to the newly rezzed prim using llWhisper functions and listen events in the proton. I was concerned that the proton's listen events might not pick up all the Whispers, but that doesn't seem to be an issue.

The model runs much more smoothly as well!

So come on over and visit at:

Still trying to decide the best way to present the Calvin cycle....and working on some other other goodies. I will also be commenting on the Stepping into Science workshop I attended In World last Friday.

Monday, February 9, 2009

Building the Photosynthesis Engine IV: Nitty Gritty TIme in the Lab

Finally got a beta version of my light reaction light model to work properly. There were of course some programming issues. Since the model has moving parts, the parts had to be able to tell where they are in relation to other parts, get and send messages to other parts and that takes no small amount of coordination.

Not only that, when I moved the model to another spot, that created a problem since I tried an end run around some issues by using object keys. Well as I was afraid, keys are useless once the model is rezzed , since Second Life generates a new key every time an object as rezzed.

So here is what I did. I set up those parts that need to know where other things are to detect those parts using a sensor event as partly shown here:

The llSensor statement tells the object (in this case a proton) to scan a 10 meter radius for what ever objects are around and then the if statements within the sensor event enable the proton to "tell" Of course real protons move randomly but in Second Life having lots of randomly moving protons presents some this is a compromise.

Also I could have done the protons as particles, but you can't control where particles go and since they are generated client side, can't interact with the model.

There are always design compromises in modeling and that is true in Second Life as well as in other modeling systems and the modeler has to pick the right compromises for the level of modeling being used for the audience.

The Calvin cycle will be much easier...far fewer moving parts and coordination problems especially since I have dealt with some of the issues involved in the Calvin cycle in Photosynthesis Engine I and II.

If you have Second Life installed you can visit the light reaction model in its temporary home at:

On tap this week:

  • Calvin cycle.
  • Look at Max Chatnoir's pedigree program. Max has graciously sent me a copy to study.
  • Faculty meeting - in person no less...that's so 20th century.
  • Also in the middle of Angel training.
  • Friday I am going to be at the Stepping to Science workshop. I was supposed to go to the first iteration of the workshop but my registration got messed up.
  • Oh yes one more thing: change the cats' litter boxes. Now that really is so 20th century.