Archive of TideArt content.

Sun, Mar 17 2013 22:57:12 UTC

Interview with Zephyros Anemos

Today we have an interview with Zephyros Anemos, the creator of Project Windstorm.

Could you briefly describe yourself?

I was born in 1974. I'm not dead yet, which apparently counts as a success of some sort. I live in Greece. You should come visit us during the summer!

Is your background mostly in coding or 3D design?

I have been lucky enough to have access to a computer since I was 8 years old, in a time when this was very uncommon. It was a ZX Specturm 48K (look it up young whippersnappers, it's well worth your time) that the father of my best friend had brought back to him as a gift from his visit to Spain. We started programming that very same day, quickly wearing out those little adorable rubber keys. I haven't stopped since. Good times!

What is Project Windstorm?

It's the result of my efforts to familiarize myself with JavaScript and web development in general. I have always been programming for the desktop, doing all sorts of things all these years. At some point, I realized that a great future lies in developing for the web (yeah, I'm always that quick on the uptake) and I was being late to the party! I haven't had any contact whatsoever with web development before, so I grabbed my text editor, found an online WebGL tutorial and spent the first few minutes very confused about the fact that JavaScript objects seemed to already posses any named member I could think of setting a value to. Eventually, things got better.

On a more serious note, Project Windstorm actually consists of two parts that evolved in parallel: the terrain engine and a WebGL GUI. Why build a GUI you say? Well, at some point, I needed a way to view and modify variables in real time. The JavaScript console is very useful, but it can only go so far. Plus, designing and implementing a GUI can be really rewarding in its own right. It all started with a scrolling list of strings and an input prompt and it kinda grew from there...

What languages, libraries or frameworks did you use to create it?

It's all written in JavaScript, with some GLSL mixed in for good measure. I'm not sure if the latter part even counts. No external libraries or frameworks were harmed during the making of Windstorm. I used Sublime Text 2 as my text editor, which I highly recommend. Development early on was done mainly on the latest Chrome Canary, while also testing against Firefox Nightly. Things have changed lately, since there has been some impressive work done by the Mozilla guys on Firefox's development tools.

Was your goal mostly to showcase HTML5 and WebGL or to keep developing it towards an actual product?

My goal was to learn JavaScript while also having fun. I've worked with terrain rendering in OpenGL before and using WebGL inside a Canvas element kept me pretty close to my comfort zone. Once I've written the first few thousand lines of code, it was clear that this could be turned into a nice online tutorial for the benefit of anybody wishing to implement a basic terrain engine. In that respect, I think it turned out OK. It's fun to experiment with and see the behavior of the algorithms used.

Can you tell us a bit about what goes on behind the scenes?

The terrain engine makes a valiant effort to download and prepare the data needed to present the illusion of an infinite terrain to the user. This must be done without disrupting the frame rate too much. Rendering a nice view of the terrain as quickly as possible is also very important. During all of this, the internal workings of the algorithms are being exposed to the user as much as possible. A detailed write-up can be found on www.zephyrosanemos.com.

How long did it take you to create?

Can't really say for sure, since I didn't make it all in one go. The first time I opened the browser with the intent of developing for the web was a year and a half ago. During that time, I've built some other things as well (a 3D graphics engine, a CAD-like 3D model viewer to test the engine with and an application I'd like to turn into a start-up someday).

If I had to guess, I'd say that the terrain took me 3 to 4 months, the GUI a bit more than that, plus two more for really polishing the demo. Hard to say though, since everything was done in parallel, with even a few dead periods in-between.

What kind of feedback have you seen so far?

The feedback was overwhelmingly positive, sometimes downright embarrasing. What I expected was a positive, hopefully even very positive response, mixed in with perhaps some negative comments. Instead, even though the original post was done on a low traffic subreddit on a quiet Sunday afternoon, things got very quickly out of hand. Most of the comments I've seen were very enthusiastic, mainly expressing amazement on the fact that this was my first JavaScript project. However, I've done most of this stuff before, so not everything was entirely new. On my part, I just think that Bruno Škvorc explained it best with a comment on Google+:

''This is JS perfection right there, shows how much of an advantage low level programmers coming from desktop environments actually have when adopting JS, simply due to the different mindset.''

I believe that we will certainly be seeing some really impressive work in the browser in the near future.

What are some of the biggest problems you are seeing with HTML5 or WebGL?

The biggest hurdle for WebGL right now (as everyone knows) is that it's not supported by Internet Explorer. Microsoft has a vested interest in keeping it that way of course, but I don't think they can continue doing that for long.

Do you have other projects planned using WebGL or web-based 3D?

Oh, yes!

Back to index

© 2007-2019 Patrick Lambert - All resources on this site are provided under the MIT License - You can contact me at: contact@dendory.net