<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
The answer to your questions on the bottom is yes, as long as what you
want is a credible visualization rather than a scientifically accurate
simulation. On the server side you can affect avatars in all sorts of
ways. Just don't try to stuff a lot of computation in between every
heartbeat, because the simulator core is a busy bee. There's only so
many cycles, and they seem to be already pretty full, especially when
there's a physics engine in action. You may want to look at writing
your own physics optimized for your visualization, instead of using the
existing physics engines which are pretty generic. (Case in point: for
my simple traffic simulation, I had to make my vehicles phantom,
because the physics engine was way too heavy on them, and ultimately
didn't add anything to the purpose of that particular traffic
simulation)<br>
<br>
Yasir Assam wrote:
<blockquote
 cite="mid:4e7912850809050312n3572d3e7t112b656194432d77@mail.gmail.com"
 type="cite">
  <pre wrap="">Hello Mike,

Thanks for your considered response - much appreciated.

I should say that I know very little about OpenSim - it's mainly
because of my ignorance that I asked my question, in order to see
whether it's worth me investing time in learning it.

If I understand you correctly what you're suggesting is that it might
be a good idea to write the physics simulation in a separate process
to OpenSim and let OpenSim just render the salient parts of the
simulation results somehow. Is that right?

For the app that I have in mind, the realism I'm after is important
only insofar as it affects the experience of the avatars participating
in it. The sim would only be used for training emergency services
staff to respond effectively to natural disasters. Realism is
important because the user needs to see their avatar affected by the
environment in realistic ways. For example, if my avatar wades into a
rushing creek during a flash flood, I need to get a good sense of just
how much force there is in the water flow, and how easy it is to be
swept away. The detailed results of what the simulation does in the
backend don't count, only the in-world effects of the simulation on
the avatars. I appreciate that I may need to do a lot of processing to
achieve this, but my intention is to model no more than I need to get
the desired effect.

Assuming that I can write a physics engine to model enough of what I
need to render this stuff in-world, would OpenSim be able to constrain
avatars in the ways I described (e.g. sweep an avatar away in a flash
flood), and would OpenSim allow me to do things like fast-forward and
the features I mentioned in my original email?

Thanks,
Yasir

On Thu, Sep 4, 2008 at 11:58 PM, Mike Pitman <a class="moz-txt-link-rfc2396E" href="mailto:pitman@us.ibm.com"><pitman@us.ibm.com></a> wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hello Yassir,

I'm happy to hear of your interest in using the opensim platform for
realistic physical process simulation. There are several scattered efforts
that have looked at this, including a few I'm involved with. I'll offer some
thoughts on this, which are just my suggestions to guide your approach.
There is a larger discussion that should eventually take place on
opensim-dev when opensim is further along.

The physics engines in opensim really are not designed to be general purpose
simulation engines for models of physically realistic processes. Domain
models will have a level of detail specific to the model which strongly
determines force calculation and integration. The physics engine in opensim
is purposed for keeping avatars from bumping into things, (hopefully soon)
vehicles, and basically running the coarse level of everyday realism that
keeps the user's mind in connection with what is happening in world. We
really wouldn't want to push more realism on to the internal physics engine
until a number of other issues get resolved.

Having said that, I'm very optimistic about opensim as a platform for
scientific work. The critical point is where you factor the workload, and
specifically what you use opensim for. I see opensim more of an interface to
backend systems that perform special simulations rather than a tool to
simulate. Simulations of physical process can produce enormous amounts of
data ( I deal with close to a petabyte of all-atom dynamics trajectories).
Most of simulation data is not interpretively useful, and analysis of that
data has to be understood well enough to write papers with figures in them,
and make simple clear points about what you learned. Opensim's greatest role
here, in my opinion, sits in between the simulation and the paper writing,
closer to the paper than the simulation. The part where you're working
collaboratively to analyze what it means, and what you found. In my
experience, this comes down to simple models that make simple points, which
could not have been arrived at without the heavy realistic simulation.

Ok, so why do I think this post belongs in opensim-dev? Because the use case
of interfacing with backend simulations is a recurring one, and a sensible
way to approach that class is to bring it to a discussion of what interfaces
are needed to set up the simulations in world, execute and manage job queues
controlling the simulation, maintaining simulation parameters, managing
output and archiving, accessing meta data about the simulation, control the
data reduction from inworld, maintaining domain specific metrics and
measurement procedures, and then the interesting part: data visualization,
understanding, sharing and group discussions in the context of the data.
There are lots of aspects to that process where opensim can bring real
advances to the table, and genuinely lead to the dismissal of contempory
techniques for the great new way, but I feel actually doing the simulation
in opensim misses the point. Where we need to focus in this context, is what
are the use cases that drive easier integration from inworld to backend
systems, both for controlling backend systems, and understanding the simple
summaries of what backend systems can tell us.

I'll invite you to think more about how best to factor your overall use case
in a way that keeps opensim as a 'thin' layer of control and shared coarse
visualization, and discuss more specifically what the actual requirements
might look like to produce results in your domain, and share them with
others.


-Mike Pitman/ Rez Tone


Yasir Assam ---09/04/2008 08:08:03 AM---Hello,

Yasir Assam <a class="moz-txt-link-rfc2396E" href="mailto:yassam@gmail.com"><yassam@gmail.com></a>
Sent by: <a class="moz-txt-link-abbreviated" href="mailto:opensim-dev-bounces@lists.berlios.de">opensim-dev-bounces@lists.berlios.de</a>

09/04/2008 04:59 AM

Please respond to
<a class="moz-txt-link-abbreviated" href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a>

To
<a class="moz-txt-link-abbreviated" href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a>
cc

Subject
[Opensim-dev] Can OpenSim be used for physically realistic training
simulator?
Hello,

I'm considering writing modules for OpenSim to enable me to create a
physically realistic training simulator.

In brief, my simulator has to

   * simulate & render certain physical processes realistically (e.g.
     weather events such as hurricanes and their effects on the
     environment)
   * constrain avatar movements (e.g. no flying, and impede motion on
     fatigue)
   * allow a privileged user to fast-forward/rewind simulation (e.g.
     jump forward 6 hours in the simulation of the hurricane)
   * allow a privileged user to have multiple views of simulation (I
     realise this depends in part on the client app)
   * be able to morph/add/remove physical objects in real-time for all
     users to see and interact with
   * log user actions for assessment purposes
   * voice chat with simulated distance & direction (someone far away
     in the sim sounds distant)

There's no need for the simulator to integrate with other grids (but
there's no harm if it gets that capability out of the box).

Is it sensible to build something like this on top of OpenSim or should
I just write my own engine?

Thanks,
Yasir

_______________________________________________
Opensim-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>


_______________________________________________
Opensim-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>


    </pre>
  </blockquote>
  <pre wrap=""><!---->_______________________________________________
Opensim-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a>

  </pre>
</blockquote>
<br>
</body>
</html>