Log in

Vizualize Wireless - The Life and Thoughts of Zach

Jun. 26th, 2004

09:38 pm - Vizualize Wireless

Previous Entry Share Next Entry

Look I made a pretty picture.

This is the debugging output of the wireless network vizualizer I'm working on. The real version of the vizualizer will give a higher resolution map and will be a static image (the last image from this animation).

All the small circles represent wireless nodes. All the colored lines represent wireless links in a mesh network. All the green nodes are "fixed" meaning we know where they are. All the yellow nodes are "floating" because we know what they link to but we don't know where they are (the network grows organicly and if a new user joins the network without registering their location then we don't know where they are, only who they can talk to).

This map has a huge cloud in the north of randomly generated nodes with random connectivity. The Green nodes are mostly places where we really do have actual nodes in real life right now. The remaining yellow nodes are ones that I just made up to show off various features of the software.

The trick is to "untangle" this mess of connected nodes so that they are laid out sensibly on the map. We don't want nodes too jumbled together and we don't want nodes that can't connect to each other to end up physically close to each other because that doesn't make sense.

The way it's modeled is by pretending that all the nodes are connected by springs, the natural length of the springs is based on the strength of the connection (better connection yields a shorter spring). Then to make sure stuff doesn't get jumbled up there's a repulsive force between all nodes as if they were all electrons. There's also drag to make sure the oscillations damp down.

I'm sure everyone else finds this boringly geeky. Some of the hardcore geeks among you may find this boringly obvious ("well yah, that IS how you untangle a connected undirected graph, we knew that, we've seen it"). But since this is the first major C program I've written in about 6 years, I'm proud. Plus I just find it really pleasing to watch all that complexity sort itself out with some simple laws of physics. It's cool to see in the equillibrium stage at the end all the little jiggly bits in their final orbits.

The reason the background looks so lame is that it's a very high resolution map of Urbana shrunk down to 1/8 it's original size. Since the roads are only one pixel wide in the high res version they get lost in the shrinking process.

Anyway, back to the grind stone of integrating this into our actual wireless platform.

July 1st is when our big interim report to OSI is due. This report will be the basis for our continued funding (my continued job) for the next 8 months. I look forward to having some free time again when this is all done. I've been working the weirdest hours. I've been spending no time with friends or doing political stuff. I've been to movies the last two nights in a row but that's about it. Other than that it's been resting and coding.

Current Music: Sam Shaber - Eighty Numbered Streets


Date:June 27th, 2004 03:00 am (UTC)
Whoa, I see my house!!
Okay, just kidding. But what you're doing is incredibly awesome, even though I don't understand the half of it. It halfway makes me jealous that I am more of a Carbondale resident and we don't have neat things going on like this.
(Reply) (Thread)
[User Picture]
Date:June 27th, 2004 06:24 am (UTC)
"Alright, now move the yellow dots over this way.

No, over THIS way.

NO, THIS way.

Aggghh, never mind...."
(Reply) (Thread)
[User Picture]
Date:June 27th, 2004 06:48 am (UTC)
Hi, that's really cool, but I'm sort of confused - it seems similar to the information system (network data/GIS) that I'd been working on. Should I be doing something else?
(Reply) (Thread)
[User Picture]
Date:June 27th, 2004 07:08 am (UTC)
From what I understood the thing you're working on is a more centralized, more powerful system that doesn't live on the node but on some other server (the nodes aren't powerful enough to do real GIS). My software isn't generating a map for the background with any GIS stuff, it's taking a pre-made image file and just cropping and scaling it. It's pretty rudimentary.

What I'm working on is a small C program that lives directly on the node that shows us the nodes own view of the network via a tiny httpd on the node. This is work that we have to do for the grant and it has to be done by July 1st.

Could you tell me more about where you're at with what you are working on and what it will do?

All the code for what I'm working on lives in the "viz" tree of our source tree.
(Reply) (Parent) (Thread)
[User Picture]
Date:June 28th, 2004 05:16 am (UTC)
dude good luck on the report. man, those things are a pain in the butt. If I ever get to give out money, I would really try to cut down on requiring those. I know they're important and all, but having to talk about what you're doing rather than doing what you're doing can be a time-drain.

the picture is pretty!
(Reply) (Thread)