Distributed 3d modeling using smartphones

You and your friends want to make a 3d model of something big!!  Not just a toy or person.  Rather your neighborhood or house.  Something big.  So the idea is to stitch together distributed 2d video to create a 3d model.  You would use your smartphones that have gps, bluetooth, accelerometer, altitude data and compass.  Send that data (of course would have to some sort of heuristic) back to a server which processes it and creates the model.

From researching this idea I found this article about how the navy developed malware for android to create a 3d model of the victims house.  So the idea of creating 3d model from cellphone data is doable.  I just want to distribute it and make it applicable to larger environments in real time.

You could become part of an initiative or start one.  Essentially someone defines the boundaries of the model via gps coordinates.  Then users who want to contribute data can join the network.  Bluetooth could be used to enhance the quality of the mesh by providing another source of location data.

The mesh could then be imported into games like second life or maybe into google maps.  Could use the 3d model to create the basis for an augmented reality platform.  So if you tag something while you are viewing the 3d model on your computer and then you go to that place you could view it through your phone.  The uses for a 3d model are endless.

Since we are distributing the data and the mesh will be updating, we could develop a highly robust to change mesh.  Essentially free from dynamic objects.  So if in one frame there is like a bike and in another there isn’t then I could determine to pick the frame without the bike.

This idea is really starting to sound like a huge project.  For my advanced AI class I think I need to focus on one thing.  Like the distributed 2d->3d modeling.  This post became a lot longer than my initial idea.

This blog looks interesting.

Swarm Calculus!!!!!!

I found people who are actually trying to model general swarms mathematically rather than specific swarms.  This is awesome!  They are calling it swarm calculus.  I think that what we are doing would contribute to the swarm calculus.  It seems like everyone always assumes we know that what we are looking at is a swarm and that we can automatically apply swarm modeling techniques   But what if it isn’t a swarm?  Then we will have wasted time and resources learning nothing.

What happens if we used swarm calculus on a multiagent learning system? What would it tell us?  That might just be stupid.

So what does that paper say about swarm calculus?

They assume cooperation is an essential part of swarms.  So right away my first thought is: Do they think Brownian motion is a swarm?  Interesting quote:

swarms generally face a tradeoff between beneficial cooperation and obstructive interference.

They find the two main components of swarms are cooperation and interference.  So is what they consider interference what I think of coordination?

They say mathematically that cooperation is:

[math]C(n)=a_1N^b[/math]

They got this formula from Breder 1954 to model cohesiveness.

They model interference by looking at the correlation between number of robots and their efficiency in the robot foraging domain.

[math]I(N)=a_2e^{cN}+d[/math].

c is less than 0 so this is a decreasing function.  So the efficiency of each robot decreases as the number of robots increases (since each robot will have to collect less).

They showed the existence of phases in swarms.  Like when there are x individuals then they all have the same speed.  But at a point other than x there might be 2 distinct speeds.  This was interesting as it points to how the number of individuals in the system can effect the emergent behavior.

Gaussian Surface to calculate the flux of swarms

If we have a physical swarm (not the general swarm).  We could use a Gaussian surface to calculate the flux of the individuals.  Could this be part of the general swarm calculus.  If we defined the domain using features other than distance?  A more general type of Gaussian surface?

Could this be applied to any types of systems.  What useful things could we say then using this info?  Could we model coordination using the ideas of the flow of (simplified idea of) electrons in a wire?

Combine this with the idea of how to model coordination.  Could we then model the general swarm?

OpenCV update and Octave

Well I had fun learning some computer vision stuff and going through the openCV tutorials yesterday.  Realized just how little we know about vision. Pretty much every idea I had was either done (since it was simple) or too complicated and could be a thesis.

Today I am going to brush up on my octave and maybe write a machine learning algorithm.

Future: year 2213

Combine augmented reality, nano robot swarms and mind-device communication.  So the idea is you first imagine a structure.  This imagined structure is displayed (could be on glasses contact lens etc), augmenting reality.  Using the image you can then improve and change the design.  Could use your hands to manipulate it or just use your thoughts which ever is easier.  The nano robots can then form the imagined structure.  You could then store useful structures for later use and the system could learn to predict and suggest new structures based on your preferences and behavior.

You all knew I am a bit crazy ;).

OpenCV

Well, I am learning OpenCV for my Advanced AI project.  I was never that into computer vision stuff, but its something new and might come in handy someday.

I got my eclipse environment set up and ran their sample app.  (I had to use -L/usr/lib not /usr/local/lib like they say)  Now am going to go through some of the simple core examples so that I can get an idea of how opencv works.

Xp-Dev web app

I made a php app to automate the task of creating group projects on xp-dev.  As a GTA for CS321, I had to create 70 accounts, around 16 projects and then add the students to their project!  That is a lot of clicking if you do it manually.  So, I made a php web app that utilizes Xp-Dev’s web api to do the work for me :).  Their api is very easy to use.  However, in order to use the code you must generate a developer api key and then request, through xp-dev’s ticket system, permission to add sub accounts.  Then all you need to do is put the names of the projects in one file and the email addresses of the group members with a blank line between project group in another.  Then run the app and voila all done :).

New Theme

I really am liking this new theme.  The text is easier to read and I like being able to choose the background.  The background used to be my wallpaper for my computer.  It seemed to go with the tech feel.

Book idea

I was thinking it would be fun to read about a world where our concept of prison is the natural state of the denizens.  Then for punishment (rather than jail) they are given full freedom.  Would be interesting to read an authors rendition of such a state.  Sounds like it would be a classic.  Going to have to find it.

I’m reading 20,000 Leagues Under the Sea.  So far I like it.

Summer Internship

Over break I applied to pretty many internships.  Hopefully I can get one :). I applied to

  • OPower
  • AddThis
  • Boeing
  • Decisive Analytics
  • GAO
  • Near Infinity
  • IDA
  • CGI

All of these companies are doing something I am interested in and would allow me to stay in Fairfax.