Responsible for: front-end programming (flash), backend-programming (python)
Maxcasa, a Brazilian construction company is launching a new housing project: Maxhaus. A fresh, open approach: the apartment comes bare - no walls - with a beautiful concrete floors and ceiling. From there buyers can customize walls and many aspects of their apartment.
Gringo created a campaign that allows user to create their own "virtual apartment". Users can add walls, furniture, paint, rotate and position them to their liking. The apartment can be viewed in 4 different angles, in a closer or further away look. Each user creates their own virtual floor on an imaginary building.
I was responsible for the virtual apartment section. Created from scratch it's a fake 3d world. Technically, it's all 2D, with a fake isometric projection. We toyed with the idea of having a real 3d scene, but the low poli constrains would not have worked. We wanted the furniture to look good, high poly renderings. This was a very challenging project for me. I'd never done any isometric world coding before, and there was a lot of learning to be done: projection, depth sorting, collision detection and so forth. All in a user friendly web interface. Depth sorting turned out to be much, much harder that anticipated. Since objects can occupy different number of tiles, the standard methods just don't cut it. I am in great debt to Zeh who has helped me out, and implemented a great sorting algorithm. If I find the time, I'd love to write a detailed blog entry explaining his solution.
The site was built using AS3, and there are lots of performance tuning to it. A whole lot of computation has to happen real time: collision detection, depth sorting, masking, scaling and so forth. AS2 wouldn't have cut it.
I was responsible for the back-end also. With quite a few features:
- User management: login, registration, pass recovery, logout, authentication.
- Social apps: comments, ratings
- Saving and retrieving each apartment configuration: furniture, position, rotation, color and so forth.
- A heavy weight admin interface that allowed us to add 3d objects from a user friendly web interface.
- A RESTful architecture that serializes data with JSON.
This was a pretty large back-end, and I couldn't have done it without Django. Without Django, the back-end alone would take me longer than the front end.
The whole project was completed in about 2 months, and it was very intense. Given time constrains, some features didn't make it to the first version, but all in all it's a very exciting project.
Unfortunately, the website hasn't been localized yet, and it's Portuguese only. If you are interested in seeing it, just click on the larger button to the right of the navigation bar that reads "Usuário novo?" and from there you can take a shot of making your own apartment.
The website was awarded an FWA site of the day for December the 03rd, 2008.