BACKGROUND

BACKGROUND

Hi there!

My name is Julian Kratt and currently I'm working as a senior software developer at the Robert Bosch Campus in Renningen in the Car Multimedia division. I did my PhD at the Visual Computing department at the University of Konstanz and my advisor was Prof. Dr. Oliver Deussen. I'm interested in computer graphics, especially the efficient modeling and rendering of natural phenomena. My research interests also included non-photorealistic rendering of images and the abstraction and simplification of geometric shapes. An overview of my publications can be found here.

Previously, I studied computer science, also at the University of Konstanz, with a focus on efficient rendering and modeling of the interaction between botanical tree models and their environment. During my studies I gained experience as a research assistant at the Visual Computing Group and as a software engineer at Laubwerk GmbH and Bauknecht Softfolio.PPS. Full cv upon request.

Hi there!

My name is Julian Kratt and currently I'm working as a senior software developer at the Robert Bosch Campus in Renningen in the Car Multimedia division. I did my PhD at the Visual Computing department at the University of Konstanz and my advisor was Prof. Dr. Oliver Deussen. I'm interested in computer graphics, especially the efficient modeling and rendering of natural phenomena. My research interests also included non-photorealistic rendering of images and the abstraction and simplification of geometric shapes. An overview of my publications can be found here.

Previously, I studied computer science, also at the University of Konstanz, with a focus on efficient rendering and modeling of the interaction between botanical tree models and their environment. During my studies I gained experience as a research assistant at the Visual Computing Group and as a software engineer at Laubwerk GmbH and Bauknecht Softfolio.PPS. Full cv upon request.

Personal

2018 - present Senior Software Developer, Robert Bosch GmbH, Renningen, Germany
2018 PostDoc, Visual Computing Group, University of Konstanz, Germany
2013 - 2018 PhD Student, Visual Computing Group, University of Konstanz, Germany
2010 - 2013 Student in Information Engineering (Master), University of Konstanz, Germany
2011 Research Intern, HPCG Lab, Purdue University, USA
2010 Software Engineer, Laubwerk GmbH, Germany
2007 - 2010 Student in Information Engineering (Bachelor), University of Konstanz, Germany
2009 Working Student, Bauknecht Softfolio.PPS, Customer Support and Software Engineer, Germany
2007 Abitur (A levels), Gymnasium Schramberg, Germany

Teaching

2018 Seminar: Current Trends in Computer Graphics, Teaching Assistant
2017 Computer Graphics and Interactive Systems, Teaching Assistant
2015 Computer Graphics and Interactive Systems, Teaching Assistant
2014 Modeling in Computer Graphics, Teaching Assistant
Computer Graphics and Interactive Systems, Teaching Assistant
2013 Modeling in Computer Graphics, Teaching Assistant
Seminar: Current Trends in Computer Graphics
2012 Modeling in Computer Graphics, Teaching Assistant

PUBLICATIONS

PUBLICATIONS

Geometric Shape Abstraction and Simplification
Julian Kratt
PhD thesis, 2018
Sketching in Gestalt Space: Interactive Shape Abstraction through Perceptual Reasoning
Julian Kratt, Till Niese, Ruizhen Hu, Hui Huang, Sören Pirk, Andrei Sharf, Daniel Cohen-Or, Oilver Deussen
Computer Graphics Forum, 2018
Structure-aware Stylization of Mountainous Terrains
Julian Kratt, Ferdinand Eisenkeil, Marc Spicker, Yunhai Wang, Daniel Weiskopf, Oilver Deussen
Proceedings of VMV 2017: Vision, Modeling and Visualization, 2017
Depth-Aware Coherent Line Drawings
Marc Spicker, Julian Kratt, Diana Arellano, Oliver Deussen
ACM Siggraph Asia Proceedings, 2015
Woodification: User-Controlled Cambial Growth Modeling
J. Kratt, M. Spicker, A. Guayaquil, M. Fiser, S. Pirk, O. Deussen, J. C. Hart, B. Benes
Computer Graphics Forum (Proceedings of Eurographics), 2015
Non-Realistic 3D Object Stylization
Julian Kratt, Ferdinand Eisenkeil, Sören Pirk, Andrei Sharf, Oliver Deussen
International Symposium on Computational Aesthetics in Graphics, Visualization, and Imaging, 2014
Adaptive Billboard Clouds for Botanical Tree Models
J. Kratt, L. Coconu, T. Dapper, J. W. Schliep, P. Paar, O. Deussen
Digital Landscape Architecture, 2014
Inverse Procedural Modeling of Trees
O. Stava, S. Pirk, J. Kratt, B. Chen, R. Mech, O. Deussen, B. Benes
Computer Graphics Forum, 2014
Plastic Trees: Interactive Self-Adapting Botanical Tree Models
S. Pirk, O. Štava, J. Kratt, M. Abdul-Massih, B. Neubert, R. Mech, B. Beneš, O. Deussen
ACM Transactions on Graphics (Proceedings of SIGGRAPH), 2012
Improving Stability and Compactness in Street Layout Visualizations
Julian Kratt, Hendrik Strobelt, Oliver Deussen
Proceedings of VMV 2011: Vision, Modeling and Visualization, 2011
Geometric Shape Abstraction and Simplification
Julian Kratt, PhD thesis, 2018
Sketching in Gestalt Space: Interactive Shape Abstraction through Perceptual Reasoning
Julian Kratt, Till Niese, Ruizhen Hu, Hui Huang, Sören Pirk, Andrei Sharf, Daniel Cohen-Or, Oilver Deussen
Computer Graphics Forum, 2018
Structure-aware Stylization of Mountainous Terrains
Julian Kratt, Ferdinand Eisenkeil, Marc Spicker, Yunhai Wang, Daniel Weiskopf, Oilver Deussen
Proceedings of VMV 2017: Vision, Modeling and Visualization, 2017
Depth-Aware Coherent Line Drawings
Marc Spicker, Julian Kratt, Diana Arellano, Oliver Deussen
ACM Siggraph Asia Proceedings, 2015
Woodification: User-Controlled Cambial Growth Modeling
J. Kratt, M. Spicker, A. Guayaquil, M. Fiser, S. Pirk, O. Deussen, J. C. Hart, B. Benes
Computer Graphics Forum (Proceedings of Eurographics), 2015
Non-Realistic 3D Object Stylization
Julian Kratt, Ferdinand Eisenkeil, Sören Pirk, Andrei Sharf, Oliver Deussen
International Symposium on Computational Aesthetics in Graphics, Visualization, and Imaging, 2014
Adaptive Billboard Clouds for Botanical Tree Models
J. Kratt, L. Coconu, T. Dapper, J. W. Schliep, P. Paar, O. Deussen
Digital Landscape Architecture, 2014
Inverse Procedural Modeling of Trees
O. Stava, S. Pirk, J. Kratt, B. Chen, R. Mech, O. Deussen, B. Benes
Computer Graphics Forum, 2014
Plastic Trees: Interactive Self-Adapting Botanical Tree Models
S. Pirk, O. Štava, J. Kratt, M. Abdul-Massih, B. Neubert, R. Mech, B. Beneš, O. Deussen
ACM Transactions on Graphics (Proceedings of SIGGRAPH), 2012
Improving Stability and Compactness in Street Layout Visualizations
Julian Kratt, Hendrik Strobelt, Oliver Deussen
Proceedings of VMV 2011: Vision, Modeling and Visualization, 2011

WEBGL

WEBGL

Some time ago I decided to write a simple rendering engine using webGL. The engine consists of a collection of javascript files, which wrap up the OpenGL functionality of vertex buffer objects, framebuffer objects and shaders. The collection also provides simple to use math classes (matrices and vectors) and a camera implementation. The following shows some experiments. Just click on the images or on the links in the description.

Ray Marching

Ray marching is a technique similar to traditional ray tracing where a scene is sampled by a set of rays emerging from the viewpoint. While in ray tracing the scene is typically described by explicit geometry, ray marching utilizes signed distance fields to describe the scene. In ray marching we "march" along the rays and evaluate the distance field until we find an intersection.

A special implementation of ray marching is the so-called sphere tracing that can be used to render implicit surfaces. Here, we can evaluate the implicit function of the surface to determine the largest possible step along the ray. The allows us to find the intersection much faster. In my case I used ray marching to render the implicit function of the Menger Sponge fractal.

Ray Marching

Ray marching is a technique similar to traditional ray tracing where a scene is sampled by a set of rays emerging from the viewpoint. While in ray tracing the scene is typically described by explicit geometry, ray marching utilizes signed distance fields to describe the scene. In ray marching we "march" along the rays and evaluate the distance field until we find an intersection.

A special implementation of ray marching is the so-called sphere tracing that can be used to render implicit surfaces. Here, we can evaluate the implicit function of the surface to determine the largest possible step along the ray. The allows us to find the intersection much faster. In my case I used ray marching to render the implicit function of the Menger Sponge fractal.

Surface Mesh Renderer

Surface meshes are typically represented as polygonal meshes consisting of triangles or quads. The Wavefront Obj file format is a simple way to store this 3D geometry data along with normal and texture information. This implementation parses an obj file and load the data into GPU memory using vertex buffer objects. In addition, for each vertex we use the normal and texture coordinates to compute lighting and color. Check out the surface mesh renderer..

Surface Mesh Renderer

Surface meshes are typically represented as polygonal meshes consisting of triangles or quads. The Wavefront Obj file format is a simple way to store this 3D geometry data along with normal and texture information. This implementation parses an obj file and load the data into GPU memory using vertex buffer objects. In addition, for each vertex we use the normal and texture coordinates to compute lighting and color. Check out the surface mesh renderer..

Fractals

A fractal is a geometric shape that consists of repeating patterns that emerge at different scales. This self-similarity is typical for fractals and is generated, for example, by applying a simple rule over and over on the shape. Fractals are not a pure computer generated thing, but can also be found in nature: trees, rivers, clouds etc. One of the most simple and easy to implement fractal is the Mandelbrot set.

The Mandelbrot set is the set of all complex values c for which the sequence zn+1 = zn2 + c is bounded. From an implementation point of view, we take the pixel position as complex number within the complex plane as starting point for the iteration. Coloring of the pixels is based on the number of iterations until the iterated value exceeds a certain radius. A visualization of the Mandelbrot set can be found here.

Fractals

A fractal is a geometric shape that consists of repeating patterns that emerge at different scales. This self-similarity is typical for fractals and is generated, for example, by applying a simple rule over and over on the shape. Fractals are not a pure computer generated thing, but can also be found in nature: trees, rivers, clouds etc. One of the most simple and easy to implement fractal is the Mandelbrot set.

The Mandelbrot set is the set of all complex values c for which the sequence zn+1 = zn2 + c is bounded. From an implementation point of view, we take the pixel position as complex number within the complex plane as starting point for the iteration. Coloring of the pixels is based on the number of iterations until the iterated value exceeds a certain radius. A visualization of the Mandelbrot set can be found here.

Particle System

Particle systems are often used in computer graphics to simulate effects such as smoke, water, fog or other fuzzy phenomena. A particle system consists of a set of entities (particles) each having certain attributes (position, mass, velocity, color etc). Moreover, particle systems can be utilized to visualize the solution of differential equations. In my case, I applied the Runge Kutta integration scheme to numerically solve Lorenz's differential equation and used the implementation of a particle system to plot the trajectories. The implementation can be found here.

Particle System

Particle systems are often used in computer graphics to simulate effects such as smoke, water, fog or other fuzzy phenomena. A particle system consists of a set of entities (particles) each having certain attributes (position, mass, velocity, color etc). Moreover, particle systems can be utilized to visualize the solution of differential equations. In my case, I applied the Runge Kutta integration scheme to numerically solve Lorenz's differential equation and used the implementation of a particle system to plot the trajectories. The implementation can be found here.

Floating Pixels

In this example, the Boids system, originally developed by Craig Reynolds, is applied to a set of pixels of an image. The system simulates flocking behavior by modelling the interaction between individual entities, which then results in complex group behavior. Three simple rules have to be considered and applied to each entity:
(1) Separation: steer to avoid crowding local flockmates
(2) Alignment: steer towards the average heading of local flockmates
(3) Cohesion: steer to move towards the average position (center of mass) of local flockmates
In this implementation, pixels are treated as entities by arranging them in 3D space and the Boids simulation is applied. All rules are applied in a Fragment shader. The example can be found here.

Floating Pixels

In this example, the Boids system, originally developed by Craig Reynolds, is applied to a set of pixels of an image. The system simulates flocking behavior by modelling the interaction between individual entities, which then results in complex group behavior. Three simple rules have to be considered and applied to each entity:
(1) Separation: steer to avoid crowding local flockmates
(2) Alignment: steer towards the average heading of local flockmates
(3) Cohesion: steer to move towards the average position (center of mass) of local flockmates
In this implementation, pixels are treated as entities by arranging them in 3D space and the Boids simulation is applied. All rules are applied in a Fragment shader. The example can be found here.

Water Rendering

This is a simple rendering of a water surface with effects such as reflection, refraction and moving water waves. The rendering is done in several passes. First, reflection and refraction is realized by rendering the scene from different view points into framebuffer objects. Then, in a compositing stage, the texture attachements of the framebuffer objects, are used in a Fragment Shader to color the water surface. Here, we also consider the fresnel reflection equation. Additionally, a skybox and a simple box model is used within this scene. Implementation can be found here.

Water Rendering

This is a simple rendering of a water surface with effects such as reflection, refraction and moving water waves. The rendering is done in several passes. First, reflection and refraction is realized by rendering the scene from different view points into framebuffer objects. Then, in a compositing stage, the texture attachements of the framebuffer objects, are used in a Fragment Shader to color the water surface. Here, we also consider the fresnel reflection equation. Additionally, a skybox and a simple box model is used within this scene. Implementation can be found here.

Reflection Mapping

Reflection or environment mapping is a image-based lighting technique to simulate complex reflective surfaces by means of a cube map. In this example, different cube maps can be selected. Click here to see the implementation: here.

Reflection Mapping

Reflection or environment mapping is a image-based lighting technique to simulate complex reflective surfaces by means of a cube map. In this example, different cube maps can be selected. Click here to see the implementation: here.

Bibtex

@article{
    doi:10.1111/cgf.13321,
    author = {Kratt J. and Niese T. and Hu R. and Huang H. and Pirk S. and Sharf A. and Cohen-Or D. and Deussen O.},
    title = {Sketching in Gestalt Space: Interactive Shape Abstraction through Perceptual Reasoning},
    journal = {Computer Graphics Forum},
    volume = {37},
    number = {6},
    pages = {188-204},
    doi = {10.1111/cgf.13321},
    url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/cgf.13321},
    eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/cgf.13321},
}

Bibtex

@inproceedings{Kratt2017AbstractTerrain,
  author     = {J. Kratt and F. Eisenkeil and M. Spicker and Y. Wang and D. Weiskopf and O. Deussen},
  booktitle  = {Vision, Modeling and Visualization},
  doi        = {10.2312/vmv.20171255},
  editor     = {Matthias Hullin and Reinhard Klein and Thomas Schultz and Angela Yao},
  isbn       = {978-3-03868-049-9},
  publisher  = {The Eurographics Association},
  title      = {Structure-aware Stylization of Mountainous Terrains},
  year       = {2017}
}
        

Bibtex

@inproceedings{Spicker:2015:DCL:2820903.2820909,
 author = {Spicker, Marc and Kratt, Julian and Arellano, Diana and Deussen, Oliver},
 title = {Depth-aware Coherent Line Drawings},
 booktitle = {SIGGRAPH Asia 2015 Technical Briefs},
 series = {SA '15},
 year = {2015},
 isbn = {978-1-4503-3930-8},
 location = {Kobe, Japan},
 pages = {1:1--1:5},
 articleno = {1},
 numpages = {5},
 url = {http://doi.acm.org/10.1145/2820903.2820909},
 doi = {10.1145/2820903.2820909},
 acmid = {2820909},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {2.5D technique, edge detection, flow-based filtering, line drawing, non-photorealistic rendering},
} 

Bibtex

@article {10.1111:cgf.12566,
    journal   = {Computer Graphics Forum},
    title     = {{Woodification: User-Controlled Cambial Growth Modeling}},
    author    = {Kratt, Julian and Spicker, Marc and Guayaquil, Alejandro and Fiser, Marek
                 and Pirk, S\"{o}ren and Deussen, Oliver and Hart, John C. and Benes, Bedrich},
    year      = {2015},
    publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
    DOI       = {10.1111/cgf.12566}
}

Bibtex

@inproceedings{Kratt:2014:NOS:2630099.2630102,
     author = {Kratt, Julian and Eisenkeil, Ferdinand and Pirk, S\"{o}ren and Sharf, Andrei and Deussen, Oliver},
     title = {Non-realistic 3D Object Stylization},
     booktitle = {Proceedings of the Workshop on Computational Aesthetics},
     series = {CAe '14},
     year = {2014},
     isbn = {978-1-4503-3019-0},
     location = {Vancouver, British Columbia, Canada},
     pages = {67--75},
     numpages = {9},
     url = {http://doi.acm.org/10.1145/2630099.2630102},
     doi = {10.1145/2630099.2630102},
     acmid = {2630102},
     publisher = {ACM},
     address = {New York, NY, USA},
     keywords = {digital surface processing, geometric modeling, non-realistic rendering, solid modeling, surface parametrization},
} 

Bibtex

@inproceedings{Kratt2014Adapt-27882,
    title={Adaptive Billboard Clouds for Botanical Tree Models},
    year={2014}, isbn={978-3-87907-530-0},
    address={Berlin},
    publisher={Wichmann},
    booktitle={Peer reviewed proceedings of Digital Landscape Architecture 2014 at ETH Zurich},
    pages={274--282},
    editor={Hayek, Wissen},
    author={Kratt, Julian and Coconu, Liviu and Dapper, Tim and Schliep, Jan Walter and Paar, Philip and Deussen, Oliver}
}

Bibtex

@article {CGF:CGF12282,
    author   = {Stava, O. and Pirk, S. and Kratt, J. and Chen, B. and Mech, R. and Deussen, O. and Benes, B.},
    title    = {Inverse Procedural Modelling of Trees},
    journal  = {Computer Graphics Forum},
    issn     = {1467-8659},
    url      = {http://dx.doi.org/10.1111/cgf.12282},
    doi      = {10.1111/cgf.12282},
    pages    = {n/a--n/a},
    year     = {2014},
    keywords = {mesh generation, biological modeling, natural phenomena, I.3.5 [Computer Graphics]:
                Computational Geometry and Object Modelling; I.3.6 [Computer Graphics]: Methodology
                and Techniques Interaction Techniques I.6.8 [Simulation and Modelling]: Types
                of Simulation Visual},
    }

Bibtex

@article{Pirk:2012:PTI:2185520.2185546,
     author     = {Pirk, S\"{o}ren and Stava, Ondrej and Kratt, Julian and Said, Michel Abdul Massih
                   and Neubert, Boris and M\v{e}ch, Radom\'{\i}r and Benes, Bedrich and Deussen, Oliver},
     title      = {Plastic trees: interactive self-adapting botanical tree models},
     journal    = {ACM Trans. Graph.},
     issue_date = {July 2012},
     volume     = {31},
     number     = {4},
     month      = jul,
     year       = {2012},
     issn       = {0730-0301},
     pages      = {50:1--50:10},
     articleno  = {50},
     numpages   = {10},
     url        = {http://doi.acm.org/10.1145/2185520.2185546},
     doi        = {10.1145/2185520.2185546},
     acmid      = {2185546},
     publisher  = {ACM},
     address    = {New York, NY, USA},
     keywords   = {generative tree modeling, interactive procedural modeling, visual models of trees},
    }

Bibtex

@inproceedings{VMV11:285-292:2011,
    crossref = {VMV11-proc},
    author = {Julian Kratt and Hendrik Strobelt and Oliver Deussen },
    title = {{Improving Stability and Compactness in Street Layout Visualizations}},
    pages = {285-292},
    URL = {http://diglib.eg.org/EG/DL/PE/VMV/VMV11/285-292.pdf},
    DOI = {10.2312/PE/VMV/VMV11/285-292}
}

Bibtex

@phdthesis{Kratt2018Geome-42816,
        title={Geometric Shape Abstraction and Simplification},
        year={2018}, author={Kratt, Julian},
        address={Konstanz},
        school={Universität Konstanz}
}