Skip to main content


Software engineering projects

Various things I was working on. Very incomplete list.

Personal projects


  • document extraction machine learning research and engineering
  • performance tuning

Neuron SoundWare

  • sound processing / music generation machine learning research and engineering
  • OCR of bar graphs

Freelance ML engineer

  • various freelance projects


  • internet-scale web analytics and market insights
  • Java, Scala
  • machine learning for time-series and anomaly detection
    • Keras



  • machine learning for time-series and natural language processing
  • algorithmic trading system
  • Python, Theano, GenSim, Java


  • Datart - e-shop, Java
  • Soyka - personalization and analytics tool, Java, MongoDB

Unicorn Solutions

Charles University in Prague

Faculty of Mathematics and Physics


CESCG 2012 conference paper

On Rendering with Complex Camera Models

Master thesis

Interactive Preview Renderer for Complex Camera Models

Abstract: An interactive renderer was implemented that allows users to preview the effects of imaging with lenses, such as depth of field, bokeh (defocus highlights) and tilt-shift lens configurations. It is based on a state-of-the-art method which combines the power of GPU rasterization and ray tracing. Many models and interactive visualizations were created. A non-interactive simulation of a complex geometrical lens model has been made which is able to produce optical aberrations. Also a prototype implementation of recent fast spreading filters is available. A thorough summary of the principles of optical image formation, lens models and depth of field rendering methods used in computer graphics is given along with a comparison of the approaches and new insights. New possibilities of representing the behavior of complex lenses are suggested, which could be employed to accelerate the rendering.

Halftone Laboratory

Bachelor thesis

Advanced Halftoning Methods

Abstract: The goal of the thesis was to design and implement a modular library for digital halftoning methods. The aim were photorealistic methods utilizing space- filling curves and blue-noise, artistic methods were considered as well. From the point of view of software design, emphasis was on modularity and extensibility, in order to support experimenting, even with new algorithms. The library along with a graphical user interface has been integrated as a plug-in with the framework of a popular image-processing application GIMP.


Volume ray-casting (direct volume rendering)


Point in polygon location

Voronoi mosaic

Rotation-minimizing frame

RenderMan shaders

Fast screencast video codec

Image-based lighting

Path tracing

Black & white image compression

  • Advanced 2D Computer Graphics
  • C#
  • repo

Point feature warping

  • Advanced 2D Computer Graphics
  • C#
  • repo

Concurrency Patterns

  • Design Patterns (NPRG024)
  • presentation of design and architecture patterns - PDF, PPT
  • Active Object, Monitor Object, Half-Sync/Half-Async, Leader/Followers, Thread-Specific Storage



Raytracing of rotational Bezier surfaces

  • JaGrLib module
  • Java, SVN, Eclipse

Swan Carousel

JaCoMo - Jabber Contact Monitor

  • Java (NPRG013)
  • monitoring of statuses of people in a jabber contact list, archiving, visualization
  • GitHub repo
  • Java, J2SE, Swing, Smack, SVN, NetBeans




JaGrLib modules

  • Guilloché, SFC Dither with adaptive clustering, Mosaic
  • modules for a educational computer graphics library
  • Computer graphics I (NPGR003)
  • Java, NetBeans

Logic Gate Network simulator

Infix calculator

  • Java (NPRG013)
  • Java SE, NetBeans

FFT and spectral analyzer

Frak - fractal rendering

  • Programming I (PRG030)
  • Mandelbrot and Julia sets
  • C, OpenGL, GLUT