Sounds like a cool idea, but be prepared for some very hard work. I guess it sounds theoretically possible, but man, that would be a monster to code/debug/test.