Portfolio of Christoph Martens
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
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.
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.
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
That means you can use the lycheeJS library pretty
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
Official website: http://lycheejs.org
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.
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.
The project is not maintained by Zynga anymore, so here's
only a download available.
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.
Official website: NONE, internal project
Repository: NONE, private github repository
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
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?
The project-specific hire rates differ, as they depend
heavily on the work that has to be done. But my usual
- Code: 200 €/h
- Consultancy: 400 €/h
- Training: 600 €/h
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