Erik S. V. Jansson
I'm a passionate
, with a burning desire to contribute in interesting and challenging projects which require software engineer solutions. Here you'll find a vetted list of my computationally performant and papers, source code in a variety of topics such as: blog posts and loads more just for good measure! computer graphics, AI, game development, systems programming, machine learning, compression, cryptography, computer security,
Most of my source code is distributed on
under a MIT license for your enjoyment! GitHub is the name of my blog. If you're thinking about contacting me, send me an The Polygon Soup . Here's also the e-mail . CV
we've developed a novel Real-Time Hybrid Hair Rendering pipeline for strand-based hair that uses a hybrid hair rendering as a volumetric approximation scheme. We show that it performs better than vanilla raster-based techniques.
scalable level-of-detail minification
my master's thesis at Scalable Strand-based Hair Rendering .
describes all the party tricks needed to implement a Monte Carlo Raytracing from Scratch from scratch along
with the monte carlo raytracer technique. Here is the
photon mapping .
project on GitHub
shows how the agents for a top-down arena shooter can learn novel behaviours. We've programmed Behaviour Tree Evolution by Genetic Programming (with behaviour trees,
path finding ) and the A* algorithms from scratch. See the genetic programming .
a short A C++ Concepts Primer on presentation .
we implemented Robert Bridson's Real-Time Fluid Animation using 3-D Curl-Noise in Curl-Noise to simulate particles and used OpenCL
interoperability for the rendering. See it at OpenGL .
brief summary within some parts in the field, covers: the Selected Topics in Modeling and Animation
and half-edge data structure, splines, mesh decimation and subdivision using fluids .
tries to visualize the NASA Investigating Meteorite Landings using Filtering and Brushing dataset in our fancy
Meteorite Landings d3 (no node.js) using
webapp and geovisualization, filtering .
another field “overview" for some techniques: Selected Topics in Machine Learning implemented in R decision trees, kernel methods, neural networks, linear/logistic regression,
feature selection .
my bachelor's thesis, where the viability of using Test Coverage Data Analysis for Large-Scale Industrial Systems in a large-scale system for test coverage is determined. It was done at code
similarity analysis Ericsson® for their CI pipeline. I made the there.
written a long time ago; where the Flyweight Performance Effects in Real-Time Applications is Flyweight Design Pattern .
benchmarked Source Code
a hybrid hair renderer for Real-Time Hybrid Hair Renderer in Vulkan that uses a fast strand-based hair for volumetric approximation . It accounts for level-of-detail and light scattering, self-shadowing (+AO), in real-time, even with over 100,000 hair strands.
extended Vim Syntax Plugin for Vulkan GLSL plugin; support for the new tikhomirov's and GL_KHR_vulkan_glsl keywords.
summarizes the nuts-and-bolts needed to animate Real-Time Ocean Simulation with Gerstner Waves efficiently by using deep ocean water vanilla
and OpenGL's Gerstner Waves . The tessellation shaders are provided under a MIT license, and are decoupled.
when I worked at The glTF Sample Viewer UX3D we redesigned the default renderer for the glTF WebGL to make it fully standards-compliant and extensible for future extensions. We added support for e.g. the Khronos® Group extension Specular-Glossiness .
: implemented and tested the draft's reference GLSL shader, based on glTF Extensions for Subsurface Scattering technique.
tool for applying Set Coverage Analysis Tool on set operations , for finding the
test coverage data and the Hamming distance between tests. See the
Jaccard similarity for usage examples.
clone of the popular Not Quite Sokoban puzzle, but with some new interesting 3-D Sokoban twists.
See my and
software variant of the CHIP-8 Emulator/Interpreter CHIP-8, in modern C++11/14. It features all of the standard instruction sets,
and has a built-in debugger. The graphical front-end uses SDL2.
changes to Sane, Lightweight and Aesthetic Vim are sacrilege, my configuration keep this to a minimum, but is pretty to look at.
developed the Markov model Adaptive Arithmetic Coding and Lempel-Ziv-Welch measuring scripts,
along with the C++ codec libraries: entropy.py and
liblzw from scratch. See also my libaac .
an old Worms-esque game written in C++11 / SFML.
Note!: you'll find more source code in the publication appendix.