iSIM: Building Simulation Version

[Overview] [Download Instructions] [Using iSIM] [Other Changes] [iSIM Homepage]
 

Overview

 

 

iSIM is an interaction simulation environment for wireless iPAQ applications.  iSIM allows a user to add people with iPAQ devices and wireless access points to a map.  People and access points, also called Agents, can be moved around on the map.  All agents also have real world GPS positions determined by a map reference points.  iPAQ users on the map also just called Users, send GPS coordinates to their corresponding iPAQ device via a port number on the localhost.  In turn, iPAQ applications can send messages to other iPAQs via the simulator.  For more information about iSIM please go to the iSIM webpage. 

 

This is the newest version of iSIM.  It has all the aforementioned features of iSIM with some new and exciting additions.  For a more realistic environment, buildings can now be simulated in iSIM.  Agents are no longer simple able to walk anywhere they want to.  Agents now must navigate around objects and walls.  In addition, agents have statistics such as health, oxygen, and carry weight.  As an agent navigates in the simulator its stats will be affected by the environment.  The environment has temperature, visibility, and oxygen content.  There may also be hazards in the environment such as fire, which can harm the agent.  If an agent's health gets too low, it will become unconscious.  In order to save the agent, another agent must carry the unconscious agent to safety. 

 

Building maps can be created using the iMap building editor program.  The environment and agents in iSIM now contain much more information than before.  In addition agents are effected by the environment and vice-versa.  As a result of these additions, iSIM now provides the following new context messages to applications: 

  • BioMessage - contains the biometrics of the agent corresponding to the wearable application.

  • RoomMessage - contains the local area/room information of the agent corresponding to the wearable application.

 

These messages can be received by applications just as in the previous version of iSIM.  Please see layout for information on how iSIM sends messages to applications.

 

 

Download Instructions

 

 

The newest code to download is located below.  If you need information on the requirements or help on installing iSIM, please see the iSIM directions webpage.

  • This is the newest version of iSIM.  Source code and documentation are included, and can be downloaded here.

  • iPAQ contains the client applications.  Download here.

 

     

This section will merely describe and show the new features of iSIM.  Instructions on to use iSIM can be found in the directions page.  iSIM will start by loading a default map called default.map.  This can be any map of your choosing, however, a map is included when you download iSIM as in Figure 1.  

 

The first new feature to note is that agents can no longer move anywhere they want in the simulation environment.  Agents cannot travel through walls, closed openings, or furnishings.  Thus when an agent is traveling in iSIM, it must navigate around objects to reach it's destination as in Figure 2.

 

The environment that the agent is in, is also divided into rooms.  The wearable application that corresponds to the agent, receives only the environment information that pertains to the room that the agent is inside.

 

Agents now have biometrics such as health and oxygen as in Figure 3.  Double-click an agent to view them.

 

All the objects and rooms inside the iSIM environment have their own properties such as temperature, visibility, and so on as in Figure 4.  These properties can affect the agents that inside the room, thus decreasing the biometrics as in Figure 5.  For instance a high temperature will lower an agents health, and a low oxygen content will likewise lower the agents oxygen and health.

 

Similarly, agents can affect other agents.  For instance, an agent with medical abilities can raise another agents biometrics (Note: agents with medical abilities are not implement yet).  All agents can carry unconscious agents as in Figure 6.  And special fire agents can severely harm other agents as in Figure 7.  When an agents biometrics reach zero, the agent will become unconscious and immobile.  Thus in order to move the unconscious agent, another agent will have to carry him.  

 

Future additions, Fire will have the ability to reproduce or spread to other rooms.  More special agents will be created such as medical agents for healing other agents, and firefighter agents for putting out fires.  Also a version of this iSIM is currently being developed that supports 3D views of what each agent sees.

 
Figure 1. iSIM when it first starts up.

Figure 2. An agent navigating in iSIM.

Figure 3. The properties and biometrics of an agent.
 

Figure 4. The properties of a room in iSIM.


Figure 5. An agent's biometrics decreasing when inside a hazardous room.


Figure 6. An agent carrying an unconscious agent.

Figure 7. Fire in iSIM can harm any agents in range of the fire.
 

Other Changes

 

 

The biggest changes in this new iSIM are the new building maps that the simulator uses.  There are many other improvements and additions as well:

  • Agents now change the heading automatically.  As you move an agent around the map, the agent will automatically determine its heading based on its previous locations.  This is similar to how GPS heading determination works, and is more natural for the user.

  • iSIM now has a ControllerThread class that is used by the Controller to send out regular data to wearable applications such as the biometrics of the corresponding agent and room information.

  • Unicast and Multicast messages are routed through iSIM  in order for iSIM to determine if the messages can be sent.  However, there is now an additional choice.  For applications where you want direct connectivity between 2 wearable applications for various types of data transfer, you can now do so without bypassing iSIM.  Wearable apps can use a new RangeMessage to ask iSIM for permission to connect to another wearable app.  For example, if you want to avoid sending a UnicastMessage through iSIM, you can now just ask iSIM for permission.  To do so, create a RangeMessage and send it to iSIM.  iSIM will then send you another RangeMessage that tells you if you can connect or not.  Example code:

//Assume your wearable device program, app1, wants to send data to another program, app2. //Before you send the data or connect to app2, you first send a RangeMessage to iSIM. Message msg = new RangeMessage( isim_port, app1_port, app2_port, data ); //data is optional. SocketSender sender = new SocketSender(msg); sender.start(); //In the same class, which must already be a SocketReceiverListener for receiving messages //from iSIM, you have an incomingMessage() method that you can use for getting iSIM's //response to the RangeMessage. public void incomingMessage(Message msg){ if( msg instanceof RangeMessage ){ if( ((RangeMessage)msg).isInRange() ){ System.out.println("We can send messages to app2 " ); }else{ System.out.println("We can NOT send messages to app2" ); } } }