Portfolio of Christoph Martens

JavaScript Enthusiast, Developer, Researcher

initializing UI ...

Hello, my name is Christoph.

I have a passion in developing and exploiting things, taking pretty any software and hardware to its limit.

I'm doing my best to keep the knowledge in my preferred languages C, C++, ASM, JavaScript, Haskell and Scala up to date.

In the past I had the chance to work for great companies and to gain a lot of knowledge in different areas, reaching from developing virusses, kernel architectures and mods, developing exploits and network penetration testing to game engines and custom runtimes on mobiles.

My last employer was Zynga, where I was working for the Shared Tech Group and developing on their HTML5 game engine stack.

After working at Zynga, I started my own project lycheeJS, an environment-independent game library. As it is environment-independent, it can run the AI of the Skye Drone and it also drives the core of my Botnet SkyN3T.

If you want to contact me, you are welcome to do so. My details are listed in the contact section.

Research (WIP)
Skye Drone

The Skye Drone project started in December 2012. Its goal is to design a drone capable of interaction with humans via AI mechanisms to intelligently navigate through buildings or other places.

The current AI implementation (January 2013) is the third iteration, it was rewritten from scratch two times and is using some parts of SkyN3T.

The underlying AI is divided in two different cortexes, the active and passive cortex. The active is the high-level control mechanism that is instructed by the AI, the passive cortex is the low-level interaction.

For example, the flight controller is part of the passive cortex to avoid problems if the higher AI level gets stuck into problems with processing the instructions. It's also the required security layer to avoid self destructing algorithms.

All high level algorithms are dynamically generated and procedural instruction sets that are stored in a database and are dynamically selectable and linkable by their criteria.

The Skye Drone is powered by lycheeJS and runs in NodeJS.


lycheeJS is a JavaScript Game library that offers a complete solution for prototyping and deployment of HTML5 Canvas, WebGL or native OpenGL(ES) based games inside the Web Browser or native environments.

Its architecture is independent of the environment which means it will run on any theoretical JavaScript environment.

That means you can use the lycheeJS library pretty anywhere.
lycheeJS is used to drive my AI on the Skye Drone, it is the core of my Botnet SkyN3T and it even powers this website!

Also, lycheeJS is compatible with my V8GL runtime that I created to ship games natively with the lycheeJS-ADK.


StegIt is a program that I developed in 2008 for understanding simple steganographic and cryptographic methods.

The tool is designed to encrypt data inside pictures by using a steganographic algorithm (combined with ARC4).

StegIt mostly searches for rectangles of the (nearly) same color inside a picture, offsets the similar colors closer to each other and uses the last bits of each color information for hiding another file in it.

It's also using ARC4 for simple stream encryption.

Zynga Jukebox

Sophisticated Audio Playback for the Web

The Zynga Jukebox is an HTML5 Audio library that fixes many bugs and issues you will have to face when you want a cross-platform audio playback solution.

I named the concept automatic stream correction. Due to the Web Browsers not allowing accurate validation of audio spritemap positions in a reliable way, the stream correction loop is running and verifying the current stream position of each track that is currently played.

The Zynga Jukebox was targeting simple playback and is using HTML5 Audio (not Web Audio) for playing back sounds. A Flash fallback allowed to have the same API available on unsupported systems. It managed to fix most of the occuring issues on mobiles with its concept.

Zynga Speedrun

The Zynga Speedrun was an internal Rendering Benchmark created as a project for the partnership between Zynga and the Browser Vendors.

As Rendering Performance of HTML5 Canvas on mobiles was slow and we were creating an isometric Game Engine, we needed an alternative for using the DOM as a Rendering Environment.

Speedrun was a project that was created to find out what the fastest rendering methods (in CSS / DOM) were on which specific platform - so we could create a Profiling File that says which Browser version can render in which method on which mobile device (or OS) the fastest and reliable way.

There was also a statistics backend that was able to give points depending on the real frame and paint rate. It differed between the requestAnimationFrame value (frame rate) and the actual paints that differed due to the underlying Push or Pull Rendering Architecture of the Browser and Operating System.


lycheeJS at onGameStart 2012 in Warsaw

I was in Warsaw the last couple days, this is my talk about lycheeJS. The talk was hold in English and explained more detailed how the lycheeJS concept was built.

Talk about the lycheeJS concept at MMT31 (German)

This German talk is about the lycheeJS concept and how it historically evolved in its abstraction layers and suggests the concept of V8GL (which wasn't final back then).


Are you smart enough?

As I want to make sure to keep working on professional projects, I put a scavenger hunt on this website. Feel free to test yourself :)

Each step contains a part of the final encryption code and a hint to the next step.

First hint: What do you need to find debug messages?

Hiring Rates

The project-specific hire rates differ, as they depend heavily on the work that has to be done. But my usual rates are:

You might think that the rates are high. If you think so, don't hire me. Simple as that :)

This website is powered by lycheeJS