Mobile Agents

Language: Java

Overview

The goal of Mobile Agents was to introduce multithreaded programming and the complications that come with threads communicating. The actual program is somewhat pointless, but this doesn't matter. I had an extremely talented partner. We were able to push the boundaries on the finished product.

The vertices or dots in the graphs of the video represent sensors. These sensors can only communicate with sensor neighbors. The idea behind these sensors is that they would be scattered throughout a forest. Their goal would be to detect any fires and convey where a fire is to a base station. The green node is a base station. It will send out a signal that propagates throughout the network and checks on the sensors' health. Each regular sensor has three states represented by different colors. Blue represents no fire detected. Yellow means that a node nearby has seen a fire. Red (fire animation) illustrates that the forest around this sensor is on fire. The signal that propagates has a green expanding circle animation. This animation is the location that this signal is currently pinging for information. If it detects a yellow sensor, it will duplicate to determine the radius of the fire. It will send information back to the home base station. This base station displays the message from the signal in the scrollable information box.

As an extra GUI mode, a fire particle emitter can be turned on to make for a cool fire animation for the red nodes. I show this in the video above. I have also linked the Github repo under the video. Please check it out.