OK, most of you know my role here is editor. I chase stories and report on them. Often I am given a few nuggets that I have to research and compile into what I consider an article. I am not a professional, I just like to write and being a fan of OpenLife my articles will reflect that. When you see something appear on the OLX news area.. that is me reporting as an editor. If you see something here on my personal blog that is my own wonderings and ramblings. I invite discussion on hot button issues like the one I am about to write about. "My Two Cents" will likely become a series of my personal blogs about what I read around. Now I read a lot. I read most popular forums, have RSS feeds from some virtual news sites and a bookmark file full of related sites (most dead, but still serving a purpose for getting archived quotes) and I subscribe to mailing lists about opensim. You would rightly say I spend way too much time researching all this when I am not being paid, so we will chalk it up to hobby and trying to stay in the know. My blog is the overflow of stuff that does not really make for OpenLife/OLX news. Just my opinions.
Now, today in my jog around the web I found yet another person spouting out that OpenLife's
SSOs were nothing more then a module created by Adam Frisby in early Feb. 07. One thing the people who say this usually show they are parroting rather then investigating is they say Sakai introduced the "
Living Island" at the same time Open Sim introduced a module in their code. Now from all I can tell from the sources I read, including Adam Frisby that is not true. IF Sakai was using a module in OpenSim then he would be using a very old code and it was not introduced to the OpenSim trunk at the same time Sakai announced "Living Trees". In fact the module that Adam introduced was so undeveloped it was not even clear or explainable on the opensim list how one could use it in their own standalones or grids. Here is the conversation that took place after Jani Pirkola (Past lead developer of RealXTend and former owner/editor of the now closed
CyberTech News) mentioned it on the
opensim mail list. Below are the responses:
From: opensim-users-bounces at lists.berlios.de [mailto:opensim-users-bounces at lists.berlios.de] On Behalf Of Jani Pirkola
Sent: Friday, 13 February 2009 3:38 AM
To: opensim-users at lists.berlios.de; realxtend
Subject: [Opensim-users] Screenshots from UCI and Openlife's virtual living island
Hi,
Diva gave me some screenshots from vandalized UCI sims: http://www.cybertechnews.org/?p=749
And Openlife has implemented virtual growing plants that seed new ones, implemented as a region module I'd guess: http://www.cybertechnews.org/?p=721
Best regards,
Jani
Uhh, isn't that the tree populator module I submitted into core like ~Feb 2007?
Adam
Justin Clark-Casey:
Nah, it's just a fantastically unlikely coincidence. Really.
Notice the sarcasm that begins before anyone is even sure of what Sakai is introducing?
Robert Klein:
Ha ha ha, well now we know WHO to blame for our tree addiction. They mention
in the article it does grass too. Does it? Can we get a complete set of
instructions or at least options?
Thanks,
-Robert
Now, if this is the same module this is a very reasonable and easy thing for the devs of OpenSim to supply. The directions and/or options to turn it on.
Frisby, Adam:
It'll do any 'tree type' - however the grasses don’t respond to the scale property IIRC, so they will just 'appear' but not grow.
Adam
OK, so Adam says this can work with any tree module. No instructions given, but a little clarification.
Robert Klein
Really? Any tree type? Adam do you have some usage/commands that you could
share with us? It appears many of us are at least a bit fascinated by this.
Any documentation?
-Robert
Again, a request for instructions.
Frisby, Adam
It wasn’t really designed to be operated via console - I did it as something that was just testing the modules interface for trees. To add the other tree types, etc - you just need to change the argument passed in the modules' CreateTree function.
Adam
So what it appears we have here is a module that Adam was messing with (but for trees only). Now, remember if you were around SSOs were going to be designed to do bigger and better things. Trees were a first step in testing what OpenLife was developing. Next we saw the ability to instantly transfer land purchased via credits via SSOs. Also SSOs will decide behavior for regions eventually. AOs, Cars, doors.. there are a lot of uses 3DX are testing out. At the time of Sakai's announcement it was obviously a tech more advanced then whatever Adam was messing with. Trees were just to be named with a SSO:LivingTree typed in the object name field.

Sakai's statement when he introduced 3DX's SSOs:
- SSO's are simple, just change the name of the object you want to apply the SSO to.
- SSO's are powerful, complex behaviours and functions can be acheived while still being easy to the user.
- SSO's are safe. It's not uncommon a region owner has chosen to turn off scripting, to prevent unwanted script events. Region owners can breath easy knowing for example the SSO: Avatar.AO will not create unwanted activity in their region.
- SSO's don't have to 'live' in the region. Just because an SSO can be applied in a region doesn't necessarily mean it will 'run' in the region, an SSO may actually do it's processing outside of the region. Keeping the region light and responsive. An example could be opponents in a first person shooter region.
- SSO's expand the capability of the 3D Scene. There's really not much limit on how far we can expand the SSO design. Already the demonstrated SSO's bring a new dynamic to the Openlife 3D scene. With a little creative juice (which we have plenty) those 'I wishes' could be brought to life with an SSO.
We have already seen a couple SSOs in action and had them demonstrated at the meetings. Can any other grid out there with OpenSim at this point simply name an object and the server takes over and makes it behave a certain way? This is where the big picture is ignored or missed by those critics who keep parroting the same tired lines that originated on the opensim list. Even if OpenSim has the ability to make a tree appear, grow, die and possibly fall over like 3DX has developed (and I have yet to hear a grid say they can and especially that they can use the same tech to make other features as OpenLife is seeing) it does not appear from what I read it is the same at all.
Back to the opensim list:
Stefan Andersson
Just for sake of joining in the flogging of the cat, I blogged together a little tutorial on one way to attach lsl/ossl scripts to trees and grass.
http://lbsa71.net/2009/02/20/hacking-trees/
Of course, you don't want a forest of scripted trees, but there are some nice possibilities in there, especially with the 'new trees'.
Also, I touch on some under-the-hood concepts, so might be an interesting read, even if you don't plan on scripting trees...
Best regards,
Stefan Andersson
Tribal Media AB
OK!! Stefan (who asked in the article on CyberTech if SSOs were simply the module Adam added way back when) has a solution to living trees for the opensim market. Now, on the surface this seems like a "see, we can do it" moment with his flogging the car comment. But what escapes notice or is outright ignored is that his method requires lsl scripting. This is NOT required in SSOs. In fact the entire process as layed out by Stefan is here:
Hacking Trees
20
Feb12
From the Under-the-Hood dept.
Today, I thought I’d show you how to attach a LSL/OSSL script to a tree, and in the process touch on some interesting concepts.
The first thing you need to know is that tree and grass are really just prims with a special ‘PCode’ that tells the viewer to render them differently. In theory, you would be able to attach scripts to trees and grass in Second Life™ - with OpenSim, theory becomes practise!
* set up an empty region
* create a Tree, call it ‘My Tree’ or something so you can identify it later
* create a Box, call it ‘My Box’
* create a script in the box, call it ‘Tree Script’.
* on the opensim region console, issue the command
save xml2 test.xml
* the file will be saved in the OpenSim root /bin directory as test.xml. Open it up, preferrably, in an xml-savvy editor for readablity.
* inspect the xml code. It’s a mouthful, but after some careful scrutiny, you will start to understand some of the nodes. You’re now looking at the under-the-hood representation of objects in OpenSim, which incidentally is based on the binary data protocol that the viewer and region uses to communicate. Doesn’t look anything like the numbers you see in the edit object tabs, right? That’s because the viewer is trying to present stuff in a way that you as a user will feel more familiar with.
* Now copy the full … node block of ‘My Tree’ and paste it over the full … node block of ‘My Box’, replacing it. This is the tricky part, but done right, you’ve replaced the box shape values with the tree shape values, turning the box definition into a tree definition.
* Save the modified test.xml file to disk.
* Delete ‘My Box’ and ‘My Tree’ from the region, making room for importing the new hacked versions.
* Issue the command
load xml2 test.xml
* Hey Presto! You will have two trees, probably of wildly differing sizes. (If so, this is because the of ‘My Box’ was different from that of ‘My Tree’.)A tree with content from Shortdog
* Now, right click on ‘My Tree’, and chose ‘Open’ (not ‘Edit’!) from the Pie menu - In OpenSim you can actually Open the contents of a tree - in Second Life™, this pie option woul be grayed out. In ‘My Tree’ the content is empty.
* Now, right click on the tree called ‘My Box’, and chose ‘Open’ - we still have our script there!
* Now, script away, you can basically do anything with the tree/grass that you can do with any other prim - set the params, size, position, communicate, do http requests. Go wild!
* Here’s a little demo script to get you started: it toggles the tree position and size every second, while saying ‘timer’ every tick.
integer toggle = 0;
default
{
state_entry()
{
llSay(0, "Script running");
llSetTimerEvent( 1.0 );
}
timer()
{
toggle = 2-toggle;
float newval = toggle + 3;
llSay(0, "timer");
list rules = [ PRIM_SIZE, < newval, newval, newval >, PRIM_POSITION, < 128+newval, 128+newval, 30+newval >];
llSetPrimitiveParams( rules );
}
}
* You can now take this object to inventory, clone it and give it to your fellow man.
OpenLife: Rename tree to SSO_LivingTree
OpenSim: See above.
I want you to pay attention in the comments on that blog post quoted above and see where some of the claims Stefan makes that will work do not.
Tried the tree hacking out Stefan.
So far not so good.
Box is a tree alright, script is in contents when opened.
Quote
“Can you add other objects into the content? Make a wishing tree where people can actually ‘Open’ the tree and pillage the goodies?”
Erm, nope.
Contents tab is greyed out when in edit mode, and unfortunately, no contents can be added when “tree” is opened via pie menu.
May need some seriously more capable coders than I, to script it to do much.
It would appear, for the moment at least, any objects contained in the “tree\box” must be hand crafted into the xml file.
Editing and saving the script is not functioning within the tree\box, it may be that there is something in the “PCode” that precludes script functions within that object class?
It was fun anyway and it works to the point of making a box into a tree.
Stops dead at functional scripts inside it, won’t compile at all.
So so far we have Adam who explains his module is not something he intended to be used via console at the time of his post and Stefan who made a work around that may or may not work. Do you see why I get frustrated when people say SSOs are the same as what OpenSim introduced?
Now, here is the kicker. Remember Justin Clark-Casey and his snide remark way back at the start of this before he even knew what he was poking fun of? Now he is back to answer Robert and his persistent request for instruction on making the OpenSim module Adam introduced work for others:
Justin Clark-Casey
I think you would have to ask OpenLife for that.
Robert Klein wrote:
> Ha ha ha, well now we know WHO to blame for our tree addiction. They mention
> in the article it does grass too. Does it? Can we get a complete set of
> instructions or at least options?
>
> Thanks,
>
> -Robert
It is at this point on the OpenSim list that a couple more people talk about how great living trees and grass would be for OpenSim and asking about how to get it working but the discussion drops dead right after.
Following the bouncing ball I conclude that SSOs are not what Adam introduced via his module. It is not what Stefan came up with with lsl scripting and a box. I see mocking before people who know better have done their homework and read into what SSOs are about and see that the trees and grass were not the point. The tech of SSOs and the future of OpenLife's use of them in many applications is. Yet still today people parrot what they read or heard to discredit something major that is happening with OpenLife.
I do not write this to bash OpenSim. I have always been a fan of the project. I write this because other grids and people who seek to discredit Sakai and the hard work of the 3DX devs to make SSOs something unique and innovating in the virtual world arena need to be shown for what they are. Jealous and/or just parrots.Justin, in his final remark said it best..one would have to ask OpenLife about this tech. We are the only ones who have it. ;)
You need to be a member of OLX Network to add comments!
Join this Ning Network