And thus, the third week ended. It had its hits and misses, but I learnt new stuff and I’m especially content with the three dailies at the end! And now, without any further ado:

#015: Probably a Metapher for Something

On the other hand, maybe it isn’t. Let’s… let’s just skip this one, okay? I guess it’s safe to say that it didn’t go where I wanted it to go.


#016: Hypnotic Eye

This one didn’t really go where I wanted it to go either, but luckily, sometimes cool things happen while you’re experimenting. The video recording didn’t have a high enough frame rate to show how it smooth it really looks, but I recommend downloading the processing sketch or an executable – it feels pretty hypnotic full screen and with a high frame rate.

s15_03_16_hypnotic_eye_01      s15_03_16_hypnotic_eye_02

s15_03_16_hypnotic_eye_03      s15_03_16_hypnotic_eye_04

#017: Circuits

This one is inspired by a chapter of Generative Design about stitching together simple SVG shapes in a grid to form more complex patterns. I wanted to try making circuit-like images, so I designed my own shapes in Inkscape. Fun, but man, this took some time doing for the first time – the sketch uses 36 shapes, and everything had to correctly align. I like the results though, some parts look really interesting!

s15_03_17_circuits_01     s15_03_17_circuits_02     s15_03_17_circuits_03

s15_03_17_circuits_04     s15_03_17_circuits_05     s15_03_17_circuits_06

#018: Cloudy Tunnel

Another one in the category “I thought this would look better”. It’s kind of like a more boring version of #013 (Fissures). Oh, and it serves as a reminder for me – I wanted to go somewhere entirely else with that, but I forgot my goal along the way because I didn’t keep switching back to my reference.

s15_03_18_cloudy_tunnel_01     s15_03_18_cloudy_tunnel_02

#019: Insect Generator

Ha, this one is fun! Originally I just experimented with using perlin noise on circle drawing, but then I realized that the results look kind of like insects with the right parameters. While I experimented further, I discovered that a certain parameter makes them look very alien and glitchy. That parameter is part of the sketch now, slowly escalating on each result, leading to a tour from normal earth insects to otherworldly abominations.

s15_03_19_insect_generator_01     s15_03_19_insect_generator_02     s15_03_19_insect_generator_03

s15_03_19_insect_generator_04     s15_03_19_insect_generator_05     s15_03_19_insect_generator_06

s15_03_19_insect_generator_07     s15_03_19_insect_generator_08     s15_03_19_insect_generator_09

#020: Forest of Lights

One of the few sketches where I have a concrete inspiration – this time from the manga Soul Eater. The trees with the light balls on top of it fascinated me, so I tried my hand on generating something similar. It was a bit hard to get something decent looking despite using 2D graphics without cool premade lighting effects and shaders, but in the end a bit of cheating (the tree shading is totally randomized and even though they are reminiscent of low-poly models, they are fully 2D, haha) got me close enough to where I wanted to go!

s15_03_20_forest_of_lights_01     s15_03_20_forest_of_lights_02     s15_03_20_forest_of_lights_03

s15_03_20_forest_of_lights_04     s15_03_20_forest_of_lights_05     s15_03_20_forest_of_lights_06

#021: Gradient Skyline

And the last of the pack! This one uses palettes again to create interesting color combinations, but this time I’ve learnt my lesson and picked them by hand. Also, for the first time: Gradients. And pixel line shifting.

The following palettes are used (and highly recommended): Thought Provoking by Miss_Anthropy, cheer up emo kid by electrikmonk, Ocean Five by DESIGNJUNKEE, fresh cut day by electrikmonk, (◕〝◕) by sugar, Dance To Forget by joy_of_summer, Storming Psychedelia by Bionic Blender, Gamebookers by plamenj, A Dream in Color by madmod001, Hymn For My Soul by faded jeans, Koi Carp and 400 Lovers by Tzadkiel, it’s raining love by tvr, vivacious by plch, antidesign by death—of—design, mai by lovelyrita and Pop Is Everything by jen_savage.

s15_03_21_gradient_skyline_01     s15_03_21_gradient_skyline_02     s15_03_21_gradient_skyline_03

s15_03_21_gradient_skyline_04     s15_03_21_gradient_skyline_05     s15_03_21_gradient_skyline_06

s15_03_21_gradient_skyline_07     s15_03_21_gradient_skyline_08     s15_03_21_gradient_skyline_09


Windows (32 bit)

Windows (64 bit)

Source Code (GitHub, MIT license)


  • Probably a Metapher for Something: Watch. Contemplate. Close. Move on and try something else.
  • Hypnotic Eye: Left-click to restart.
  • Circuits: Left-click to refresh.
  • Cloudy Tunnel: Left-click to refresh.
  • Insect Generator:
    • Left-click to refresh (and increase alien glitch)
    • Right-click to refresh (and reset alien glitch)
    • Mouse-wheel or +/-: Cycle through coloring options
  • Forest of Lights: Left-click to refresh.
  • Gradient Skyline:
    • Left-click to refresh.
    • Right-click to refresh, but keep palette.

If you’re not on Windows, fret not; for some reason I can’t compile for Mac and Linux, but you can just download Processing and open the sketch files in the archive. It’s really straightforward. If you need any help doing that, just send me a mail or comment here.

And now, once more into the fray! I’ll do a fourth week of dailies, and then I’ll change the format a bit. I’ve got some experience with smaller sketches now, but I wonder what I could do with more time – so instead of daily sketches, it’ll be one or two bigger sketches a week. But for now, you can look forward to the next and last round-up of dailies next Sunday. See you then!

And the second week is over! I had some interesting and diverse results this week. I’m especially fond of the Silk/LightWeaver and some of the results of Stormy Weather look very dynamic.

#008 – Silky Smoke

A variant of #006 (CircleTrails), inspired by this video where Casey Reas talks about the circle collision thing that #006 also uses, but with drawing lines between them. Silky Smoke works in a similar way, but isn’t about drawing a persistent picture and more about the movement created. It looks okay, but I have to admit that I was hoping for more.

s15_03_08_silky_smoke_1     s15_03_08_silky_smoke_2

s15_03_08_silky_smoke_3     s15_03_08_silky_smoke_4


#009 – SilkWeaver

Ladies and gentlemen, may I introduce the star of this week: SilkWeaver! It’s not self-praise if I’m praising the results of a program I coincidentally, right? Either way: Aesthetically, I these are the best pictures I’ve created so far. And the complex patterns are created quite simply actually: It’s another variant of #006, but this time, there are lots of little circles wandering and some bigger circles called “weavers”. When a weaver intersects with a circle, it draws a line from the center between the two to the center of the little circle. That’s all the magic!

s15_03_09_silkweaver_01     s15_03_09_silkweaver_02     s15_03_09_silkweaver_03

s15_03_09_silkweaver_04     s15_03_09_silkweaver_05     s15_03_09_silkweaver_06

s15_03_09_silkweaver_07     s15_03_09_silkweaver_08     s15_03_09_silkweaver_09

s15_03_09_silkweaver_10     s15_03_09_silkweaver_11     s15_03_09_silkweaver_12


#009b – LightWeaver

My friend increpare noted that the images made by SilkWeaver are too dark, and yeah – he’s right. So I looked up how to use the additive mode in Processing. Turns out, that’s just a single line – and now my SilkWeaver is a LightWeaver. When you start the sketch, that’s the standard mode – with “m” you can switch to the SilkWeaver mode. You know, if you like Silk more than Light.

s15_03_09b_lightweaver_01     s15_03_09b_lightweaver_02     s15_03_09b_lightweaver_03

s15_03_09b_lightweaver_04     s15_03_09b_lightweaver_05     s15_03_09b_lightweaver_06

s15_03_09b_lightweaver_07     s15_03_09b_lightweaver_08     s15_03_09b_lightweaver_09

s15_03_09b_lightweaver_10     s15_03_09b_lightweaver_11     s15_03_09b_lightweaver_12


#010 – Homage to Mondrian

I guess the inspiration here is quite clear. The version with the zig-zag lines looks more interesting than I thought it would.

Before #010 I’ve just randomly generated colors, but I thought that this calls for a few handselected colors. Luckily, the ever-wonderful ColourLovers has API access! I tried to make it call the API on runtime, but sometimes the call actually timed out because the site was taking so long to load – so now I’m just using a downloaded version of the result XML.

While I’m content with the result in general, when it came to taking screenshots I wished that I had handpicked the palettes. Some are really interesting, but others simply don’t have enough contrast. Well, lesson learnt I guess.

(I’m sorry that I don’t have any idea whose palettes I’m using here – they are randomly selected from the top 100. If I’m using your palette, please tell me and I’ll credit your here!)

s15_03_10_homage_to_mondrian_01     s15_03_10_homage_to_mondrian_02     s15_03_10_homage_to_mondrian_03

s15_03_10_homage_to_mondrian_04     s15_03_10_homage_to_mondrian_05     s15_03_10_homage_to_mondrian_06

s15_03_10_homage_to_mondrian_zig-zag_01     s15_03_10_homage_to_mondrian_zig-zag_02     s15_03_10_homage_to_mondrian_zig-zag_03

s15_03_10_homage_to_mondrian_zig-zag_04     s15_03_10_homage_to_mondrian_zig-zag_05     s15_03_10_homage_to_mondrian_zig-zag_06


#011 – Stormy Weather

This one had a long way behind it. Lots of circles attached to other circles, in turn attached to other circles, every rotating. At first it was constantly drawing and resulting in a thing that kind of looked like an ugly ball of wool. Changing it to motion blur led to the results below – much more dynamic-looking!

s15_03_11_stormy_weather_01     s15_03_11_stormy_weather_02     s15_03_11_stormy_weather_03

s15_03_11_stormy_weather_04     s15_03_11_stormy_weather_05     s15_03_11_stormy_weather_06


#012 – Calibrating, Please Wait

“Calibrating, Please Wait” got its name because it reminded me of how zooming/targeting display are sometimes displayed on TV – as if it was trying to get the right settings, but they are never quite right.

s15_03_12_calibrating_please_wait_01     s15_03_12_calibrating_please_wait_02     s15_03_12_calibrating_please_wait_03

s15_03_12_calibrating_please_wait_04     s15_03_12_calibrating_please_wait_05     s15_03_12_calibrating_please_wait_06


#013 – Fissures

Again, lots of little lines, rotating and moving, with additive blending. I guess I’ll have to experiment further with that technique as it always seems to have interesting results. In this case, it kind of looks like a very old scratched glass panel (or shard of ice) with fissures and light shining from the other side.

s15_03_13_fissures_01     s15_03_13_fissures_02

s15_03_13_fissures_03     s15_03_13_fissures_04

#014 – Noisy Forms

Last one! Polygons with 3 to 8 points and a random rotation determined with perlin noise according to the polygon radius. Not the most glorious way to finish the week, but I guess there are good and bad days, eh?

s15_03_14_noisy_forms_01     s15_03_14_noisy_forms_02

s15_03_14_noisy_forms_03     s15_03_14_noisy_forms_04


Windows (32 bit)

Windows (64 bit)

Source Code (GitHub, MIT license)


  • Silky Smoke: Left-click to refresh. Right-click to switch between white/color modes. +/- keys or mouse wheel to change hue.
  • SilkWeaver: Left-click to refresh. Right-click to pause/resume. “m” to change blending mode (Lightweaver [default] or SilkWeaver)
  • Homage to Mondrian: Left-click to refresh. +/- to change speed. 1 to 9: Set scale. i: Switch between drawing or instant. s: Switch between straight or zig-zag.
  • Stormy Weather: Left-click to refresh. Right-click to pause/resume.
  • Calibrating, please wait: Left-click to refresh. +/- to change speed.
  • Fissures: Left-click to refresh. Right-click to refresh and draw instantly.
  • Noisy Forms: Left-click to refresh.

If you’re not on Windows, fret not; for some reason I can’t compile for Mac and Linux, but you can just download Processing and open the sketch files in the archive. It’s really straightforward. If you need any help doing that, just send me a mail or comment here.

And that’s it for the second week. Considering how small the results look, it’s surprising how taxing it can be to actually do a sketch a day (and to make videos, pick screenshots and do all the other things needed to publish the results). But I’ll keep at it at least for four weeks in total – some days where I felt particularely uninspired, like on the days I made Stormy Weather or Fissures, still had great results. The “I have to sit down and make something” now is a great if somewhat uncomfortable cure to “I feel uninspired”, apparently. Either way: See you next week!

Hey! If you’ve been reading this blog for a while, by now you’ve probably noticed that (true to my tagline) I mostly post games that I make – but sometimes, it’s also other stuff. The “other stuff” might get a bit more from now on! I’ve been getting into generative art, and I’ve decided to make one generative art sketch per day until I get bored with it. Every Sunday I’ll post the results of the week with screenshots, videos, executables for Windows and the processing source files. And if you’d rather see me making games, don’t worry – making interesting and potentially beautiful things with code can only help making my games look better, can’t it? And now without further ado, I present to you week 1!

#001 – ShardSphere

First one in my daily series! Mostly inspired by Generative Art Chapter 5. I really like the beginning when it comes to life out of nowhere.

s15_03_01_shardsphere_1     s15_03_01_shardsphere_2

s15_03_01_shardsphere_3     s15_03_01_shardsphere_4


#002 – ShardCircle

A rehash of #001. I was wondering how it would look in 2D. Turns out: Pretty good. Even more as in #001 I like the how it appears with a swoosh like a swarm of little shards.


s15_03_02_shardcircle_3     s15_03_02_shardcircle_4


#003 – TriangleChain

Things don’t always look like I envisioned them, and #003 is a very good example of this. So along the way I thought if it doesn’t want to look like I want it to, I’ll just add silly perlin noise motion to it and call it a day. (Perlin noise is SOOOO good.) You might notice that it has much clearer colors than #001 and #002 – here I discovered the joys of the HSB color mode.

s15_03_03_trianglechain_1     s15_03_03_trianglechain_2


#004 – CubeSphere

Originally inspired by this crazy thing. To keep the color scheme interesting but also fluent and consistent, I have 4 different functions: “noise(sin(angle t))”, “noise(cos(angle t))”, “noise(cos(angle t) + sin(angle t))” and “noise(sin(angle s)) * noise(cos(angle t). I generate 4 random weights at the beginning to set how each of those functions contributes to the color at the angle t and s. Voila: Different patterns and colors, but consistent and flowing into each other.

s15_03_04_cubesphere_1     s15_03_04_cubesphere_2


#005 – Fireflies

This is the one that strayed furthest from its inspiration, and all the better for it. Because gosh, does it look good, and it looks even better in motion. And it’s fun to play with too!

Originally, I was inspired by a scene in the Rule-of-Cool-anime Campione: Lots of flying swords acquiring a target at the same time and then flying towards it. Turns out that looks really boring in 2D without great graphics and sound effects, but the trails looked nice. And it looked even more interesting with colors and just as little glowing dots.

And so, one by one, I arrived at some sort of space fireflies harvesting white orbs for light, always flying, piercing, glowing and looking out for the next one.

s15_03_05_fireflies_1     s15_03_05_fireflies_2     s15_03_05_fireflies_3

s15_03_05_fireflies_4     s15_03_05_fireflies_5     s15_03_05_fireflies_6

s15_03_05_fireflies_7     s15_03_05_fireflies_8     s15_03_05_fireflies_9


#006 – CircleTrails

This one started out as me rewriting an example from Generative Art Chapter 6 without reading the code and only reading the description. It looked delightfully different, and with the addition of different modes (black, greyscale and color) even more so.

The chapter’s title is “Emergence” – having complex forms and behaviour emerge from much simpler behavior. And so, in CircleTrails, there are lots of invisible circles just flying around and bouncing off the borders. Those aren’t the circles that you can see in the images – those are drawn whenever two invisible circles intersect with the center point as the circle center and the distance as the circle radius.

s15_03_06_circletrails_m1_black     s15_03_06_circletrails_m2_greyscale

s15_03_06_circletrails_m3_color_1     s15_03_06_circletrails_m3_color_2


#007 – Blobs

Last one of the first pack: A collection of blobs, fighting for dominance. It’s not working out very well for them, but more so for us as we get to enjoy the results. Over time, the images feel a lot deeper and richer textured and get an oily look.

s15_03_07_blobs_1     s15_03_07_blobs_2

s15_03_07_blobs_3     s15_03_07_blobs_4



Windows (32 bit)

Windows (64 bit)

Source Code (GitHub, MIT license)


  • ShardSphere: Left-click to refresh.
  • ShardCircle: Left-click to refresh.
  • TriangleChain: Left-click to refresh. Space to show UI.
  • CubeSphere: Left-click to refresh.
  • Fireflies: Left-click to spawn a sphere and to deactivate auto-spawn-mode. Right-click to refresh.
  • CircleTrails: Left-click to refresh. Right-click to change mode. +/- keys to speed up/slow down.
  • Blobs: Left-click to refresh.

If you’re not on Windows, fret not; for some reason I can’t compile for Mac and Linux, but you can just download Processing and open the sketch files in the archive. It’s really straightforward. If you need any help doing that, just send me a mail or comment here.

And that’s been it for the first week. See you next Sunday for the second one!

In my studies at the HTW Berlin, I had a course called “Independent Coursework” where I could choose to work on any project relevant to my studies. I chose to work on a Kinect multiplayer game which should also be interesting to watch. Most important to me was that the game uses what the Kinect does best in my opinion: Spacial movement. I didn’t want any repetitive gestures, just a direct relationship between the players and their avatars. So, together with my fellow student Jana Leinweber I set out and developed, and a few months and a dozen iterations later we had this:


Create spells! Attack! Defend! Dodge!

Tactical spellcasting meets fast reflexes in this
duel game for two wizards and a Kinect v1.

Download for Windows


  • Tobias Wehrum: Programming, Game Design
  • Jana Leinweber: Game Design

With assets by:

Thanks to Tobias Müller for recording the video with me!

Here is a quick summary of the spells:

Throwable projectile.

Throwable projectile.

Multiple poison clouds pop up at random positions around the enemy. Poison damages enemy for a while.

Multiple poison clouds pop up at random positions around the enemy. Poison damages enemy for a while.

A lightning cloud appears over the head of the enemy. Shortly after, a lightning bolt strikes.

A lightning cloud appears over the head of the enemy. Shortly after, a lightning bolt strikes.

Multiple small throwable projectiles.

Multiple small throwable projectiles.

Creates a shield around a hand of the player, blocking one projectile or lightning.

Creates a shield around a hand of the player, blocking one projectile or lightning.

Creates a temporary air field around the player's hand which can reflect projectiles.

Creates a temporary air field around the player’s hand which can reflect projectiles.

Heals the player. Cures poison.

Heals the player. Cures poison.

A throwable projectile that heals the throwing player afterwards if it hits.

A throwable projectile that heals the throwing player afterwards if it hits.

Destroys all of the other player's gathered spells if he doesn't use them quickly enough. Does damage for every destroyed spell.

Destroys all of the other player’s gathered spells if he doesn’t use them quickly enough. Does damage for every destroyed spell.

Slows time inside a bubble, making every projectile slower and more easily dodgeable.

Slows time inside a bubble, making every projectile slower and more easily dodgeable.

Apart from striving to make the game fitting for the unique capabilities of the Kinect, we also tried to adhere closely to the principle of counter-play: Every action should be interesting for the attacker and for the victim.

A few examples of counter-play in our spells:

  • Projectiles are interesting to target/throw and it is also fun to evade them.
  • If the enemy hoards spell containers, you can use an Energy Storm. This sucks for the enemy, but he can still quickly react and choose which spells to use.
  • Air Blast can be used against a projectile-heavy enemy, reflecting those projectiles – but they still have to be targeted well.
  • Heal helps the player, but while he heals he is busy and defenseless.
  • If the enemy has an Air Blast or a Slowing Bubble, that might be the perfect time to hoard new spells – or to use a Poison Bubble.
  • The enemy has a Shield? Use a Stone Strike – if the enemy blocks it, the Shield breaks on which was only 1/3 of the damage.

Somewhere in space, a lone starship discovers that the theme for this year’s Global Game Jam was “What do we do now?”. It also discovers that a very cool game was made for three players. And that there something is wrong with its Operating System.

Starship Command Center Pro

Starship Control Center Pro

Deep in space, nobody hears you scream
when the trial version of your OS runs out.

Not that screaming would do much.
Instead, you and your two friends now need to
figure out what the randomized buttons of the
free version of your system do.

Together, operate thrusters, cannons,
shields and a mining magnet, collect
gold and buy a proper license!

A cooperative and confusing space adventure
for three players with gamepads.

Download for Windows
GGJ page


  • Brian Davis: Idea, Game Design, Music and Sound Design
  • Mikko Lepistö: Art
  • Tobias Müller: Programming
  • Tobias Wehrum: Lead Programming

With sounds assets by Ricky SituCST 201 KaWilson and Jim Rogers.

The theme is used twice in our game – once in the game mechanic with players having to talk to each other what do to next because they need to work together, and secondly in the story: The trial version of our control system has ended and the result is a chaotic and unknown button layout, what do we do now?

We even satisfied a diversifier (sort of an achievements for the developers) this time: Noise Generator, “The mechanic of the game is based on players having to stay in constant communication with each other.”

Fun fact: Originally we wanted to do the controls Spaceteam-like with custom controls on multiple smartphones – buttons, sliders, rotatable knobs. It took us over a day to get it to connect and run smoothly between Android and PC, only to find out that using controls on a touch screen while looking at another monitor felt awful and (apart from buttons) was nearly unusable. So after that day of work, around 5 in the morning, I spent 30 minutes to program replacement gamepad controls. It worked perfectly and felt good.

After a master’s thesis and a few months of freelance work I’ve once again time to work on Catcher!

The new release features:

The self-made score server was needed after Scoreoid, the service I previously used, decided to silently cease service and take all of my player’s scores with them. At first I thought it was just a short outage, but after a few months of not even being able to access the backend site it seems they just died silently. Time to depend more on the things I make myself, I guess.

Here are a few screenshots from the new build:

This slideshow requires JavaScript.

It feels so good to be back. Expect more updates in the coming months!

With the current Global Game Jam right around the corner and only just about 11 1/2 months late, here is the project that we did for the last Global Game Jam: Super Fruit Punch!

You can find a download at the game’s GGJ page.

– Game Design: Thomas Bedenk, Norbert Haacks
– Programming: Tobias Wehrum, Benjamin Schug, Richard Wepner, Martin Heller
– Art & Animation: Kirill Krysov
– Music & Sound: Lesley Dean

The second game in the series “Games I Made For Companies, But Never Posted Here” was for Exozet a few years ago – a port of the Nintendo DS Game “Wickie und die starken Männer – Teil 2: Wiedersehen in Flake” to the iPhone using Adobe AIR.

The port had an interesting set of challenges. The game should use the original levels and everything including player movement and enemies should be exactly like it was on the DS. Obviously I couldn’t use any of the original code directly, but it was still useful to be certain about some enemy behaviours. The level files had to be exported, converted into a proper format for the AIR game and then read back.

For that game, I worked together with another programmer. My part was almost all the in-game gameplay, i.e. level loading, platforming and implementing the player character, the enemies, the various other hazards and the pick-ups in the game world.

Here is a trailer – in German, but the gameplay is still easily understandable:

I’m currently in the process of posting all the games and prototypes that I made years ago and never published. This post (and the next one) are special though – because the games were published, just not by me. I made those games for other companies.

The first one is Beer Pong HD for Android. Back in the days when I worked in the Netherlands as part of my studies, I made its first version (further on, other developers expanded it) with Unity for Codeglue.

It seems the original promo video is not available anymore. Here is the best video that I found (made by I suggest you jump to 4:16 for gameplay:

What is still available is the video how the AI finds out which ball throws end up inside a cup. I didn’t just want to calculate how to hit the middle of the cup because that might look too artificial, but I still wanted to be able to predict whether a throw hits, even if multiple jumps on the table or cup’s edges are involved. Here is a video of the AI “training” and finding out which throws hit:

(And the best part is that it takes some time and is automatic. Time for a cup of coffee – or an office sword fight. I like being a programmer.)

After I published my master’s thesis, a few people asked me about what I did for my bachelor’s thesis. I experimented a bit with controls for an Android shooter. Here is a video showing the game I did there:

Asset Credits: