[Opensim-users] objects undergoing continuous change

Diva Canto diva at metaverseink.com
Wed Nov 12 16:39:44 UTC 2008


I did not use inworld scripting for any of this. I used region modules. 
All those vehicles you see in the video are instances of 
SceneObjectGroup that are not being backed up in the DB. Their positions 
are updated via changes to the AbsolutePosition property.

OpenSim is just casually an application that looks like SL. In reality, 
OpenSim is a framework -- a set of classes -- that can be used and 
extended, just like OpenGL for example. So, if you know how to program 
in C#, you can do a lot more interesting things directly on the server 
via region modules (http://opensimulator.org/wiki/Region_Modules).

Paul Fishwick wrote:
> Crista:
>
> Diva Canto wrote:
>   
>> I have written a region module that does traffic simulation. Here's a 
>> video produced by my students:
>> http://uk.youtube.com/watch?v=kJNDcurLP1w
>>     
> This very impressive and nice use of OpenSim along the lines of what I
> was thinking about. For teaching discrete event simulation, the entire 
> messaging
> passing approach seems to lend itself well to this (assuming FIFO
> ordering on event queues for a region). For continuous simulation,
> your vehicles appear to be updating position at a decent frequency.
> Did you use llSetPos() and was there a delay or did you run flat-out
> at whatever the server could muster?
>
> For some reason, my simple test was not good, perhaps because I was
> moving too short a distance during updates. I'll retry again later tonight.
>   
>> That was back in late August; the opensim API has changed considerably 
>> since then and I haven't had time to update my module yet. I didn't 
>> use physics; it was all done with periodic updates to the objects' 
>> state, just like in traditional simulation. It works pretty well, only 
>> starting to break when there are more than 2 avatars in scene; the 
>> breakage is because we have the server behind a home DSL, so packets 
>> start getting lost.
>>     
> Yes, I could see how too many updates could be a problem depending on 
> the server
> and location of clients.
>   
>> In general, for doing tradional simulations forget about using inworld 
>> scripting. Even if the scripting engine was already working well, 
>> which is not, that introduces a lot of unnecessary overhead. 
>>     
> I suppose I was wondering whether the overhead could be removed or 
> minimized for
> running standalone servers (or at least, servers with no more than 1 or 
> 2 avatars)...
>   
>> Moreover, it also imposes a programming model that is an obstacle to 
>> simulations (for example, not being able to hold references to objects 
>> and having to interact with them via llSay functions). 
>>     
> Yes, having the option for direct referencing would be useful.
>   
>> The opensim API, on the other hand, is a joy to work with (how many 
>> times have I said this? :-)
>>     
>
> When you say the opensim API are you referring to LSL, the C# interface, 
> or something else?
> I've been using LSL, but haven't seen any docs on the C# API yet.
>
> -p
>
>   
>> Diva / Crista
>>
>> Paul Fishwick wrote:
>>     
>>> Justin Clark-Casey wrote:
>>>   
>>>       
>>>> Yes, things are stored in memory with a regular flush to database that occurs every 15 seconds.  However, I suspect that 
>>>> objects with the physics attribute are not currently persisted (from a recent thread on opensim-dev).
>>>>
>>>>   
>>>>     
>>>>         
>>> I am curious as to whether it could become possible (in a standalone 
>>> server or
>>> in a grid with only one person) to do continuous visual updates for moving
>>> objects (physical or otherwise). I have tried a few experiments, such as a
>>> continuously moving block using LSL (setpos) and after a few seconds, the
>>> behavior becomes erratic (for example, the box shoots off somewhere or
>>> disappears entirely from the region).
>>>
>>> I realize that having fast moving visual objects does not lend itself 
>>> well to sharing
>>> state, but there are some instances where one wishes to simply launch a 
>>> region
>>> or grid and do more traditional simulation (as one might do in OpenGL) 
>>> whether
>>> or not the object states are shared, or on the frequency of sharing. It 
>>> would be nice
>>> to have this "standalone continuous object motion" as a switch-based or
>>> deltatime-specified capability.
>>>
>>> Thoughts?
>>>
>>> -p
>>>
>>>   
>>>       
>>>>>  * Would it (or is it) useful to have some scripts run on the client 
>>>>> rather than the
>>>>>     server for less server loading? For example, could ODE run on the 
>>>>> client
>>>>>     
>>>>>       
>>>>>           
>>>> I think that some minor stuff is done client side already (such as flexiprims).  However, I suspect one runs into 
>>>> difficulties when objects can affect each other, since you would have to start communicating all this information back 
>>>> to the server and somehow synchronizing it with changes from other clients.
>>>>
>>>> However, I am not an expert in this area.
>>>>
>>>>   
>>>>     
>>>>         
>>>   
>>>       
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Opensim-users mailing list
>> Opensim-users at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-users
>>   
>>     
>
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-users/attachments/20081112/d606e985/attachment.html>


More information about the Opensim-users mailing list