Once CorpGlory Dev team worked with Dima Barbanel and his team - Masterskaya.pro. The idea of the project was to make computational art based on the data about graduates of a Russian business school. The resulting graphics should be projected during photos creation for the person that is being interviewed. And it turned out to awesome results.
Victor Gorbachev and Andrei Kondakov pushed the complexity and the concept even further, proposing special requirements from shooting point of view: the app should produce series of frames “growing” inside out. Also was asked to make a tool where teammates could work on together.
We were interested in series of images which we will project later. In addition, intermediate results need to maintain for teamwork. I used something called paper.js — a great tool to work with vectors and html canvas. I made pictures serializable to binary format to store on node.js server so team members could work together on graphics.
I apply same algorithm for every image but with different values of
variables. I have different types of figures. Each figure is a
sequence of curves. Every curve is array of smoothly connected
dots in polar coordinates. So I can just take any
r(θ) — a function of
angle, take 10 or 20 points of this function and then smoothly connect.
I need to get these dots separately to make distortion.
Distortion is sum of “bubbles”. Each bubble is a normal distribution. In case of circle, algorithm begin with
r(θ) = 1, and then add a gaussian, screwed to polar coordinates.