<!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">
Mike,<br>
<br>
Great post! I have been trying to explain this distinction between
simulation and visualization to a lot of people, and the role of
virtual worlds in this, and I must say that your post nails it. I
completely agree with you.<br>
<br>
Let me share my experience wrt setting up/controlling/managing
simulations. There are two things: (1) the front-end (user) interface;
and (2) the backend (simulation) interface; the virtual world sits in
the middle. For the front-end, I have been using OpenSim's http
facilities, i.e. the user controls the simulations via web pages that
are served by OpenSim itself, and sees the results/stats of the
simulation on those web pages. So, essentially, I'm using opensim as a
glorified web application server for that; it's as painful as any other
web app server -- having to assemble the http programatically from
pieces, some of them constant, some of them variable. Apart from that
well-known pain, if you run the embedded browser, everything looks well
integrated -- see pictures here: <br>
<a class="moz-txt-link-freetext"
href="http://www.ics.uci.edu/%7Elopes/images/traffic-control/">http://www.ics.uci.edu/~lopes/images/traffic-control/</a><br>
But it would be nice to be able to assemble these web pages in some
other more declarative way, especially for when the output becomes more
elaborate with charts, etc. Being able to do Javascript or similar
would also help a lot -- basically a computation that opemsim would
send to these 2d visualization clients is what I'm looking for.<br>
<br>
I haven't played around with the backend interface yet, I've only done
very simple simulations directly in opensim, using the opensim API. But
my plan is, again, to use HTTP and/or XMLRPC and/or REST. In other
words, I'm seeing this as a 3-layer architecture: web browser --
opensim -- simulation engine; or 2D View --
Glorified-3D-Controller-Visualizer -- Model. Doing the backend
interface over HTTP has its drawbacks, namely on the speed, which will
limit the kinds of things that can be visualized inworld. Nevertheless,
that is my current plan. I would like to hear of other interfaces.<br>
<br>
For doing these systems, there are two interesting things in here: one
is deciding which data to visualize in immersive 3D and which data to
visualize in plain old 2D; the other one is deciding which features of
the backend simulation are exposed inworld and which features are not
exposed. There's a thin line in all of this, there is no recipe; it
really depends on the particular simulation and the points you want to
make visible, and how. The immersive 3D visualization is
psychologically more powerful, but not everything should be exposed
there, not just because of the enormous amount of simulation data and
processing, but also because most of the internals of simulations are
very uninteresting; visualizations of those internals may even be
misleading/disturbing when we're dealing with probabilistic models and
the visualization is seen by ordinary people.<br>
<br>
My main point is: interesting times ahead! :-)<br>
<br>
Crista<br>
<br>
Mike Pitman wrote:
<blockquote
cite="mid:OFC0152E41.8EAC3165-ON852574BA.00481D51-852574BA.004CBF99@us.ibm.com"
type="cite">
<p>Hello Yassir,<br>
<br>
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.<br>
<br>
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.<br>
<br>
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. <br>
<br>
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. <br>
<br>
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.<br>
<br>
<br>
-Mike Pitman/ Rez Tone<br>
<br>
<br>
<img src="cid:part1.00000403.09020303@metaverseink.com"
alt="Inactive hide details for Yasir Assam ---09/04/2008 08:08:03 AM---Hello,"
border="0" height="16" width="16"><font color="#424282">Yasir Assam
---09/04/2008 08:08:03 AM---Hello,</font><br>
<br>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr valign="top">
<td
style="background-image: url(cid:2__=0ABBFE29DFDB9BC18f9e8a93df938@us.ibm.com); background-repeat: no-repeat;"
width="40%">
<ul>
<ul>
<ul>
<ul>
<b><font size="2">Yasir Assam <a class="moz-txt-link-rfc2396E" href="mailto:yassam@gmail.com"><yassam@gmail.com></a></font></b><font
size="2"> </font><br>
<font size="2">Sent by:
<a class="moz-txt-link-abbreviated" href="mailto:opensim-dev-bounces@lists.berlios.de">opensim-dev-bounces@lists.berlios.de</a></font>
<p><font size="2">09/04/2008 04:59 AM</font>
<table border="1">
<tbody>
<tr valign="top">
<td bgcolor="#ffffff" width="168">
<div align="center"><font size="2">Please respond
to<br>
<a class="moz-txt-link-abbreviated" href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a></font></div>
</td>
</tr>
</tbody>
</table>
</p>
</ul>
</ul>
</ul>
</ul>
</td>
<td width="60%">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr valign="top">
<td width="1%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="58"><br>
<div align="right"><font size="2">To</font></div>
</td>
<td width="100%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="1"><br>
<font size="2"><a class="moz-txt-link-abbreviated" href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a></font></td>
</tr>
<tr valign="top">
<td width="1%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="58"><br>
<div align="right"><font size="2">cc</font></div>
</td>
<td width="100%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="1"><br>
</td>
</tr>
<tr valign="top">
<td width="1%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="58"><br>
<div align="right"><font size="2">Subject</font></div>
</td>
<td width="100%"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="1"><br>
<font size="2">[Opensim-dev] Can OpenSim be used for
physically realistic training simulator?</font></td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr valign="top">
<td width="58"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="1"></td>
<td width="336"><img
src="cid:part2.09080203.02030004@metaverseink.com" alt="" border="0"
height="1" width="1"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br>
<tt>Hello,<br>
<br>
I'm considering writing modules for OpenSim to enable me to create a <br>
physically realistic training simulator.<br>
<br>
In brief, my simulator has to<br>
<br>
* simulate & render certain physical processes realistically
(e.g.<br>
weather events such as hurricanes and their effects on the<br>
environment)<br>
* constrain avatar movements (e.g. no flying, and impede motion on<br>
fatigue)<br>
* allow a privileged user to fast-forward/rewind simulation (e.g.<br>
jump forward 6 hours in the simulation of the hurricane)<br>
* allow a privileged user to have multiple views of simulation (I<br>
realise this depends in part on the client app)<br>
* be able to morph/add/remove physical objects in real-time for all<br>
users to see and interact with<br>
* log user actions for assessment purposes<br>
* voice chat with simulated distance & direction (someone far
away<br>
in the sim sounds distant)<br>
<br>
There's no need for the simulator to integrate with other grids (but <br>
there's no harm if it gets that capability out of the box).<br>
<br>
Is it sensible to build something like this on top of OpenSim or should
<br>
I just write my own engine?<br>
<br>
Thanks,<br>
Yasir<br>
<br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
</tt><tt><a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a></tt><tt><br>
</tt><br>
</p>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
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>