Juni 2010
Totally stok3d
Fortsetzung, Teil 2
An Interview with David Lenaerts, DerSchmale.com.
CREATE OR DIE: David, I first stumbled upon your blog two years ago whilst searching for some Pixel Bender examples. Just hypothetically, in case people didn´t know you yet, could you please introduce yourself in a word or two.
David Lenaerts: Hi, I’m David Lenaerts, a Belgium based (soon-to-be freelance) Flash platform developer and an Away3D team member. Ever since my first Commodore 64 (I must’ve been one of the last people in the country to get a PC), I’ve enjoyed playing around with anything that is visual. That aspect of programming captivated me more and more as I got to know games and demos such as Doom or Future Crew’s Second Reality. So today, I spend most of my free time creating visual effects, it doesn’t really matter whether it’s 2D or 3D.
CREATE OR DIE: Your work has widely varied facets and various fields of interests: Like being envolved in the away3D development team, doing image processing related stuff like Farbe and apropos of nothing releasing all those great little snippets and ideas in your blog. Where did you take your time to develop all those ideas?
Lenaerts: As most of those things are done after working hours, I’m afraid it’s by spending little time away from my computer! They’re usually projects or experiments that, once started, can completely engross you, making you lose track of space and time until it works. But then, once it works, I quickly lose interest, publish it, and move on to something else. Being easily bored and having a constantly shifting field of interest as a result, there’s a wide range of experimental "fields". The downside is that perhaps most experiments are never as finished and polished as they could or should be. Of course, for real projects, that philosophy doesn’t hold true!
CREATE OR DIE: Reading through your blog it seems that developing away3D´s BSP/PVS feature took you a very long time of continous hard work for the last half year. So, BSP/PVS, that´s half the battle because of…
Lenaerts: Performance! Rendering any typical 3D scene requires an engine to sort all the triangles so they can be drawn in the correct order. Without going into the technical details too much, BSP (Binary Space Partitioning) splits up your model into small manageable sub-regions in such a way so that they don’t need any sorting themselves, and the scene can be drawn correctly by offering a very fast way of determining which of these regions need to be drawn first. On top of that, a PVS (potentially visible set) can be constructed for each region, which describes which other regions are visible from there.
This offers a huge performance benefit, since generally, when we know where the camera is, most of the geometry can already be thrown out before any further calculations are made on it. In fact, it’s the same technique used in games such as Quake or Unreal to make levels of a grander scale possible.
The pre-calculations needed for the PVS can take a good deal of time, so Fabrice Closier’s Prefab3D (which is an Away3D authoring tool) offers ways to pre-generate that and save it as a file.
CREATE OR DIE: And now that this case is closed, what´s next? New tasks in view of away3D? Or are you into doing something totally different now for a change?
Lenaerts: I will probably take things a bit slower for a while, playing around with various smaller experiments (that could be Away3D features like GlassMaterial) and let impulse rather than purpose guide the way, which is the way I like it best. So who knows! However, there already are some interesting things in the pipeline, but for the result of that I’ll have to make you wait just a bit longer!
CREATE OR DIE: Plainspoken: Where are you focused on when heading for new ideas? Having clean code right from the start, performance, or is it something totally different like letting it flow and get some results first?
Lenaerts: That’s a tricky question and it really depends on the project. When it’s an experiment, I don’t pay much attention to the cleanliness or performance of the code. Thinking about "dry" things such as code architecture can kill creativity in a second. At that point, I just want to play around and see if something is at all possible. After a while, I’ll get a sort of "code-claustrophobia", which leads to a compulsive clean-up session to some acceptable degree. When it’s cleaned up, I find it easier to adapt and to optimize for performance. Even though performance-tuning in Actionscript often means removing clean code, it should be the last step to improve something that is working.
CREATE OR DIE: How important is doing experiments to you?
Lenaerts: It’s the single most important and fun part of the job! If there’s a project that needs no experimentation, it’s probably not one I’d enjoy very much. Experimentation isn’t of course just messing around with code to get any random result. You can have a clearly defined goal with any number of requirements; it’s the path you take to reach those that should be open for experimentation. Even if something fails, it’ll never be so without having learned a thing or two.
CREATE OR DIE: Let´s talk about Farbe. Seems to me like you invested a lot of heart´s blood building this promissing tool – any plans evolving Farbe in the future?
Lenaerts: Definitely! Sadly, I’ve had far too little time to work on it the past few months, but the plan is still to create a full painting application offering more than just watercolours. In fact, the project’s already pretty far in development, but there’s plenty of work to be done on the aesthetical aspects, tying up loose ends, testing, … I hope to release an early version, figure out what users deem more important, and prioritize that.
CREATE OR DIE: Any time recently the use of Flash gets more and more versatile. 3D, dynamic Sound, online image processing tools, miscellaneous tools like Pixel Bender or Alchemy. In your opinion, where does this road go to?
Lenaerts: I don’t like to think of myself as a "web-developer". I choose Flash as a platform because it’s easy to share and to reach many people. In that respect, I’m only too happy to see the Flash platform becoming much more than the web. Air has been around for quite some time now, and the mobile opportunities that Flash Player 10.1 presents make the platform even more appealing (not to mention the recently announced Google TV!). The tools at our disposal transform Flash into something that is both powerful and ubiquitous. I can only hope that the current developments will give Flash enough momentum to keep improving itself in the future as well.
CREATE OR DIE: Having all this opportunities – do you have a highlight you like most or is it the mix of using a bit of everything?
Lenaerts: I don’t really have a preferred way of doing things. I just love projects that could end up looking cool but of which I’m not sure how to accomplish it. In a case like that, there’s a lot of potential for success along the road: the typical adrenaline-fueled rushes of “Eureka!” I’m sure every developer knows and loves.
Depending on the goal, I’ll use the tools I think are suited best for the job. Having said that, I must admit I’ll always have a soft spot for Pixel Bender. A kernel can be seen as an isolated algorithm which works very efficiently on one- or two-dimensional arrays of data. The fact that it can work using Vectors, ByteArrays or BitmapData, make them very flexible and much more open to reuse than most Actionscript code.
CREATE OR DIE: …and assumed Adobe grants you one wish to decide one feature for future versions of the Flashplayer – what would this be?
Lenaerts: I’ll have to give the age-old default answer: hardware acceleration! But with everyone crying over this feature and comparing Flash to Unity (which does have hardware acceleration), I feel the need to point out that I think Flash should not become a 3D engine itself like Unity. It should provide an abstraction layer to the hardware, an "OpenFL" if you will. I’m not just saying this from the perspective of an Away3D team member, but as a Flash community member. A very important aspect of the Flash platform is its strong community, exactly because there are many people creating and sharing things like this.
CREATE OR DIE: In our days – with all this wealth of inspiration, what inspires you? Motivates you? Any people, blogs or websites you really could recommend worth a visit?
Lenaerts: As I try to create things that look real and not necessarily "beautiful" by the common definition, the real world inspires me a lot. Looking at natural and physical occurrences, landscapes, the way light reflects on a surface, wind blowing ripples on the water surface, … There’s so much around us waiting to be coded! So my first recommendation would be to go outside for a while, take a walk, you can checks blogs later!
In the digital realm, I’m inspired by other things that try to mimic the real world (video games being the most obvious example) as well as visualizations that point out a more fundamental and mathematical beauty. Fractals are of course the penultimate example of this, and though their colourful visualizations of the 90s have become rather tacky, the likes of Tom Beddard show how beautiful they really are.
In a bit more technical way, I’ve been very inspired by the experiments of simppa.fi, a Flash demoscener who manages to combine his technical prowess with the aesthetically pleasing.
CREATE OR DIE: Any advice or pearls of wisdom?
Lenaerts: Apart from recommending to experiment with code whenever you have the chance, I would also advise not to be afraid to reinvent the wheel. Even if something in your field of interest has already been made on your platform of choice, and even if that implementation already kicks ass, it never hurts to give it a try yourself. The fact that you can compare your implementation to another and learn from that makes it a very worthwhile effort. And who knows, maybe you can find a better way to do things!
CREATE OR DIE: Lastly, DerSchmale unplugged… in a world without PC´s you would do likely instead of being a programmer?
Lenaerts: In that case, I’d probably be paying more attention to my guitar and piano, so… on a stage rocking out with 5 groupies in each hand! Well… that, or on a street corner playing a rusty guitar with missing strings for coins and scraps of food, if realism is a must.
CREATE OR DIE: It has been a privilege, thanks very much.
Lenaerts: The privilege is all mine, thanks for the interview!

























