Development of Airshaper.com

(September 2017-December 2017)

Airshaper was a project of Zastrugi and originally funded by KBC startit. They were struggling to get the project completed in time and contacted me to do a complete rewrite of their backend. On the left is a screenshot of an early beta during development to give it some context.

They basically wanted an automated way to fire up unlimited google compute engine servers in order to do large CFD calculations. And also the basic accounting to be done around having a internet based business like : Registering new users, accept payments to be converted to credits, generate and keep track of the simulation reports of the users ordered aerodynamic simulations, keeping track of past simulation parameters etc.

To configure the simulation parameters (object placement in windtunnel, wind velocity, rotation of object etc). A nice browser based STL viewer was developed by another contracter. Som nice GPU animations with javascript were added to make it all look rather slick.

Project was written from scratch in Ruby on Rails and released to production a few months later. It was fully functional except for payments and some further css styling needed to be done, however I felt it was a great accomplishment to get it all up and running in such a short period. Adding actual credit card payments would have only been a few more days of work (in my spare time I had created a webshop for AnyKey also with ruby on rails, which did exactly that).

The main challenge here was learning everything about the API's provided by Google Compute Engine's in order to fully automate setting up a new dedicated server, push the 3d files to that server and then fire up the simulation. We also needed to have this nicely scheduled in the background. And for this I immediately pointed to sidekiq as I had used this for various other customers with success in the past. Once the simulation was finished it gave a callback to the api created to signal computation was done and reports were generated. The rails backend would then spin up another background sidekiq worker to first download all relevant files and then proceed to close down the google compute engine. Thereby minimizing hosting costs and optimizing the amount of computational power you could spin up at any moment during busy times. The rails server is the only one that keeps running 24/7 and it stores the simulation results, uploaded files, credits etc. The actual simulation servers running the CFD calculations in python get created and used and therefor billed only when there's an actual simulation order done.

To optimise development costs further styling of the pages and email templates implemented would be done by someone who could be hired internally. All my invoices got paid correctly and I wish Wouter success with his endeavors.

My next customer became Engie Electrabel