<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-AU link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I would like to be easier to integrate and edit region modules
using our OpenSim API.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Exposing some of that functionality to user scripting (but
obviously under controlled environments) and being able to recompile and run
new modules on the fly would be a very cool feature to have.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adam<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'>From:</span></b><span lang=EN-US
style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>
opensim-users-bounces@lists.berlios.de
[mailto:opensim-users-bounces@lists.berlios.de] <b>On Behalf Of </b>Diva Canto<br>
<b>Sent:</b> Wednesday, 12 November 2008 7:58 AM<br>
<b>To:</b> opensim-users@lists.berlios.de<br>
<b>Subject:</b> Re: [Opensim-users] objects undergoing continuous change<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I have written a region module that does traffic simulation.
Here's a video produced by my students:<br>
<a href="http://uk.youtube.com/watch?v=kJNDcurLP1w">http://uk.youtube.com/watch?v=kJNDcurLP1w</a><br>
<br>
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.<br>
<br>
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. 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). The opensim API, on the other hand, is a joy to work with (how many
times have I said this? :-)<br>
<br>
Diva / Crista<br>
<br>
Paul Fishwick wrote: <o:p></o:p></p>

<pre>Justin Clark-Casey wrote:<o:p></o:p></pre><pre>  <o:p></o:p></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>Yes, things are stored in memory with a regular flush to database that occurs every 15 seconds.  However, I suspect that <o:p></o:p></pre><pre>objects with the physics attribute are not currently persisted (from a recent thread on opensim-dev).<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre><pre>    <o:p></o:p></pre></blockquote>

<pre><o:p> </o:p></pre><pre>I am curious as to whether it could become possible (in a standalone <o:p></o:p></pre><pre>server or<o:p></o:p></pre><pre>in a grid with only one person) to do continuous visual updates for moving<o:p></o:p></pre><pre>objects (physical or otherwise). I have tried a few experiments, such as a<o:p></o:p></pre><pre>continuously moving block using LSL (setpos) and after a few seconds, the<o:p></o:p></pre><pre>behavior becomes erratic (for example, the box shoots off somewhere or<o:p></o:p></pre><pre>disappears entirely from the region).<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>I realize that having fast moving visual objects does not lend itself <o:p></o:p></pre><pre>well to sharing<o:p></o:p></pre><pre>state, but there are some instances where one wishes to simply launch a <o:p></o:p></pre><pre>region<o:p></o:p></pre><pre>or grid and do more traditional simulation (as one might do in OpenGL) <o:p></o:p></pre><pre>whether<o:p></o:p></pre><pre>or not the object states are shared, or on the frequency of sharing. It <o:p></o:p></pre><pre>would be nice<o:p></o:p></pre><pre>to have this "standalone continuous object motion" as a switch-based or<o:p></o:p></pre><pre>deltatime-specified capability.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Thoughts?<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>-p<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre> * Would it (or is it) useful to have some scripts run on the client <o:p></o:p></pre><pre>rather than the<o:p></o:p></pre><pre>    server for less server loading? For example, could ODE run on the <o:p></o:p></pre><pre>client<o:p></o:p></pre><pre>    <o:p></o:p></pre><pre>      <o:p></o:p></pre></blockquote>

<pre>I think that some minor stuff is done client side already (such as flexiprims).  However, I suspect one runs into <o:p></o:p></pre><pre>difficulties when objects can affect each other, since you would have to start communicating all this information back <o:p></o:p></pre><pre>to the server and somehow synchronizing it with changes from other clients.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>However, I am not an expert in this area.<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre><pre>    <o:p></o:p></pre></blockquote>

<pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>  <o:p></o:p></pre>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</div>

</body>

</html>