CG2 Code For Art conference 2016

CG2 Code For Art is an idea which started as an opportunity for meetings and communication among the professionals in the sphere of visual arts. Six years after its inception CG2 Code For Art has become the main annual event for 3D artists, animators, architects, developers, students and educators in the computer graphics.

This year, the conference is taking place on two consecutive weekends – different sessions for Architecture, VFX/Gaming industry and CG Developers.

The chance to invite as speakers the creative minds behind some of the most prominent international projects, encourages us to see CG2 Code For Art as a platform for an union of artists and a great source of inspiration and knowledge for young people.


Inter Expo Center, “Vitosha” Hall

Some of the most talented developers will show us the new technologies in the computer graphics area and will share ideas and special tricks.

29 October 2016

09:00 - 09:30 Registration
09:30 - 09:40 Opening
09:40 - 10:30 Rendering microfacet surfaces on CPU and GPU - Asen Atanasov, Chaos Goup
Asen will present this year's paper by Chaos Group "A Practical Stochastic Algorithm for Rendering Mirror-Like Flakes" which was presented at SIGGRAPH 2016 and published by ACM - He will explain the original CPU algorithm and how it is adapted for GPU implementation.
The presentation will be held in Bulgarian
10:30 - 10:40 Coffee Break
10:40 - 11:30 Deadlocks, Leaks and Race conditions - Mihail Mihaylov
Some of the hardest bugs to diagnose and prevent are deadlocks, leaks of memory and other resources, and race conditions. In this presentation Mihail is going to discuss common types of these bugs and to describe how to diagnose and prevent them. He also will share case studies from his experience.
The presentation will be held in Bulgarian
11:30 - 11:40 Coffee Break
11:40 - 12:30 Test Driven Development: Creation of quality code - Yordan Madzhunkov
Yordan will share his experience with Test Driven Development (TDD) - methodology for developing code where tests are written before the code itself. TDD is not a substitute for traditional testing, it’s a methodology that allows to develop effective and comprehensive Unit tests. Applied properly TDD leads to extremely high quality source, high performance, easy maintenance and with very few defects (bugs).
If you are a programmer who wants to adopt TDD, then this lecture will be definitely useful for you.
The presentation will be held in Bulgarian
12:30 - 13:40 Lunch Break
13:40 - 14:30 On the Buoyancy of the Floating Point - Martin Krustev, Chaos Group 
This talk will focus on the behavior of floating-point numbers, as described in the IEEE754 standard and supported in hardware in most contemporary CPUs and GPUs. Accent will be on error metrics in floating-point calculations and how to make full use of the information encoded in the floating-point data types.
The presentation will be held in Bulgarian
14:30 - 14:40 Coffee Break
14:40 - 15:30 Doctest: Inside the internals of a modern C++ testing framework  - Viktor Kirilov
The framework is inspired by the "unittest {}" functionality of the D programming language and Python's docstrings - the project's mantra is: tests can be considered a form of documentation and should be able to reside near the code they test. The lecture will have a brief introduction about what the library can do and how it is different from all the rest. Then the most important and interesting features will be dissected and explained - like for example the automatic test registration or the expression decomposition with templates.
The presentation will be held in Bulgarian
15:30 - 15:40 Coffee Break
15:40 - 16:30 Recognizing and comparing of 2D features - Orlin Dimitrov
The lecture is going to present a method of image processing that recognize 2D models. It will show  its strengths and weaknesses. The content will be focused on the math in the method. The model is tested in  of Windows and .NET. environment.
The presentation will be held in Bulgarian
16:30 - 16:40 Coffee Break
16:40 - 17:30 How can I boost my productivity? - Yordan Miladinov, Chaos Group
Traditionally a programmer's productivity is considered in organizational terms only, neglecting any personal factors. It's clear that productivity does not solely depend on the outside environment. It's time to discuss what are the interpersonal qualities that can boost one's productivity in the workplace and see how can we use them to our advantage.
The presentation will be held in Bulgarian

30 October 2016

09:30 - 10:00 Registration and Opening
10:00 - 10:50 Real-time cartoon style rendering of a 3D scene with GLSL - Hristo Lesev, DiaDraw
Everyone seems to be doing photorealistic computer graphics nowadays and there are many well known algorithms, which can approximate with a great level of accuracy how light behaves in the real world.
In this talk we will go over another branch of the computer graphics field: non-photorealistic rendering (NPR) of a 3D scene.
Our goal is to see how something so subjective as an artist’s style and process can be represented by a mathematical model and rendered on a computer screen. In the process we will explore different artistic styles such as drawing, technical illustration, and animated cartoons.
The talk will shed light on the workings of the human visual system and cognition and will demonstrate how they affect the NPR shading model. Different shading styles will be demonstrated as interactive WebGL examples.
In the end we will be able to render our 3D scene to look just like a sketch from Leonardo or a Norman Rockwell's painting.
The presentation will be held in Bulgarian
10:50 - 11:00 Coffee Break
11:00 - 11:50 GPU 101 - Vladislav Vulchev, Chaos Group 
Video cards are becoming more and more powerful. The excellent handling of multithreaded tasks gives them great application in various fields. Computer Graphics is one of them. We'll dive into a  video card, see what's inside of it and how it works.
The presentation will be held in Bulgarian
11:50 - 12:00 Coffee Break
12:00 - 12:50
Denoising of Monte Carlo renders - Vladimir Koylazov, Chaos Group 
This talk will present the foundations and a brief history of denoising algorithms for Monte Carlo rendering and will describe a practical algoritm that was developed for the V-Ray renderer.
The presentation will be held in English
12:50 - 13:40 Lunch Break
13:40 - 14:30 Using MDL to Share Physically Based Materials -  Lutz Kettner and Jan Jordan, NVIDIA
The basics of NVIDIA's Material Definition Language (MDL) will be discussed, showing how a single material can be used to define matching appearances between different renderers and rendering techniques. Users will learn how physically-based definitions can be defined while developers will learn what’s entailed in supporting MDL within their own product/renderer.
The presentation will be held in English
14:30 - 14:40 Coffee Break
14:40 - 15:30 Getting your hands dirty with GPUs - Alexander Soklev, Chaos Group
In this hand-on lecture he will introduce you to the CUDA API and how you can tackle different problems using the GPU for general purpose computation. Some tasks are just meant to be computed on GPUs and he will show you just how powerful GPUs can be.
The presentation will be held in Bulgarian
15:30 - 15:40 Coffee Break
15:40 - 16:30 Case study: Developing V-Ray Bench with Haskell - Daniel Taskoff, Chaos Group 
Why would someone pick Haskell for their project? Why was Haskell the language of choice for V-Ray Bench? How did Haskell improve the process of developing V-Ray Bench? Daniel will give answers to these questions in 40 minutes, showing real examples from the project and talking about the different problems that arised during the work on it.
The presentation will be held in Bulgarian

29 October

 31fe6d9c8760107e66af3b2a670a6f300f9c57eb72d27670f6 pimgpsh fullsize distr

Viktor Kirilov

Now Viktor spends his time writing open source software. His interests are the making of games and game engines and also good practices in software development – his profession is his hobby.

Martin krustev 2

Martin Krastev, Chaos Group

Martin Krastev has got his Bachelor of Arts in Computer Science from AUBG. Prior to joining Chaos Group in 2013, Martin got some 15 years of experience in game engines, graphics stacks for embedded systems, engineering software for WRC and F1 telemetry, and software 3D rasterizers. His interests include Monte Carlo algorithms and CPU architectures. He enjoys optimizing tough computational problems and trekking. In Chaos Group he has been porting V-Ray to new CPU architectures.

Asen atanasov

Asen Atanasov, Chaos Group

Asen has been part of V-Ray Core development team at Chaos Group since 2008, where he worked on proxy geometry, light transport and image processing. His interests include physically-based rendering, numerical analysis and algorithms. He has Bachelor's degree in Software Engineering and Master's degree in Computational Mathematics and Mathematical Modeling from Sofia University "St. Kliment Ohridski", and holds ECMI Certificate "Mathematics for Industry". His current research is in the field of physically-based materials.

Yordan mandzhunkov

Yordan Madzhunkov

Yordan is a medalist at the International Physics Olympiad, graduated "Physicist" from Sofia University and Master "Computer simulations" at RWTH, Aachen, Germany. He has a strong interest in the accelerator structures, numerical methods, simulations and writing efficient code.

Yordan miladinov

Yordan Miladinov, Chaos Group

In third grade Yordan finds an old ZX Spectrum in his basement and, struggling with the Russian manual, starts programming in BASIC. Since then he's interested in IT. Despite that, he's got his bachelor's degree in Psychology. Combining these two is what makes him really curious about the human factor in computer programming.

Mihail mihailov

Mihail Mihaylov

Mihail graduated from Sofia First English Gymnasium and he earned his MS in Physics from Sofia University. Mihail started programming at the age of 14 with Turbo Pascal and 8086 assembly. He has been using C++ professionally for 15 years. At the moment Mihail is a Staff Engineer at VMware.

Orlin dimitrov

Orlin Dimitrov

Orlin, 25, has been involved in electronics all his life. The last 8 years he has been focusing on robotics and AI. Eager to share his knowledge and convinced that he should not keep it to himself, Orlin, together with a few colleagues of his, has taken up organising summer schools in robotics.

30 October

Vladislav vulchev

Vladislav Vulchev, Chaos Group

Has bachelor degree in "Informatics" from FMI of SU. Part of the GPU team of Chaos Group. Works on integrating V-Ray for RT GPU rendering. Strongly interested in every field of Computer Graphics.

Alexander soklev

Alexander Soklev, Chaos Group

Alexander Soklev is a bachelor in Computer Science, graduated from the University of Sofia. He worked for a few years in the mobile industry, providing auto-focus solutions for smartphone manufacturers. He joined Chaos Group in 2014 and ever since has been a part of the Chaos GPU team. He is interested in CG graphics, video games and of course - GPUs.

Daniel taskov

Daniel Taskoff, Chaos Group

Daniel is a Bachelor of Computer Science in FMI, Sofia University. He has a strong interest in functional programming and applying its concepts in real world applications. A fresh member of the Chaos Group team, he works on the V-Ray Bench project.


Dr. Hristo Lesev, DiaDraw

Hristo is a software developer at heart, passionate speaker, educator and entrepreneur. Having had a long experience with C++, C# and developing for 3ds Max and Maya, he co-founded DiaDraw where he and his team focus on creating mobile apps for iOS and Android. When not busy developing mobile apps Hristo enjoys teaching other developers as an assistant professor at Plovdiv University, Bulgaria. He is obsessed with computer graphics and can often be found coding 3D stuff late at night.

Jan jordan

Jan Jordan - Software Product Manager MDL, NVIDIA

Jan Jordan is the product manager for the NVIDIA Material Definition Language. He’ is a graduate engineer of applied computer science from the Fachhochschule fur Wirtschaft und Technik Berlin, Germany, and has a B.S. in computer science from the RTC Galway, Ireland. Before joining NVIDIA, his diverse working experience spanned from research work on practical VR applications to working as an art director in computer games. He is a long-time member of NVIDIA's Advanced Rendering team, where his focus has been on enabling material workflows across many different applications and renderers.

Vladimir koylazov

Vladimir Koylazov, Chaos Group

Vladimir "Vlado" Koylazov, co-founder and head of software development at Chaos Group, the makers of V-Ray and V-Ray RT. Passionate about 3D graphics and programming, Vlado is the driving force behind Chaos Group’s software solutions.  Vlado is an expert in rendering theory and an avid 3D community supporter and he often participates in forum discussions to help users solve rendering challenges.

Lutz kettner

Lutz Kettner - Senior Manager, Rendering Software and Material Definition, NVIDIA

Lutz Kettner leads the design and engineering efforts for MDL and the NVIDIA Iray® renderer from the NVIDIA Advanced Rendering Center. He has been working on leading software products in advanced rendering, language design, API design, and geometry for 19 years. He’s known for his influential work on the open source Computational Geometry Algorithms Library CGAL. Lutz holds a Ph. D in Computer Science from ETH Zurich, Switzerland, worked as a researcher at the University of North Carolina at Chapel Holland led a research group at the Max-Planck-Institute in Saarbrucken, Germany. He served on ISO and ECMA standardization committee.      

Generating code - Introduction to LLVM. Иван Комитов и Иван Мавров, Хаос Груп
V-Ray Cloud meets WebGL. Михаил Сергеев, Хаос Груп.
The integration between Motion Capture technology and Motion Builder
Writing cross-platform C++ applications: Windows, Linux & OS X. Веселин Георгиев, Хаос Груп
Think inside the blocks. Благовест Тасков, Хаос Груп
Допълнена реалност - Орлин Димитров, Робо Лига България
Въведение в методите Монте Карло - Йордан Манджунков, Chaos Group
През Очите на Lytro Illum - Георги Чунев
Стохастични микрофасетни модели част 1 - Асен Атанасов, Chaos Group
Стохастични микрофасетни модели част 2 - Асен Атанасов, Chaos Group
Защо да пишем рейтрейсъри? - Христо Лесев
Ефикасна векторизация на C++ код - Мартин Кръстев, Chaos Group
Бързо опростяване на триъгълни мешове - Михаил Джурев, Chaos Group
Introduction to deformable objects models and muscle simulation - Fabio Turchet, MPC London
Имитиране на недостатъците (и чара) на истинските фотокамери - Веселин
Физически базирани материали - Иван Мавров, Chaos Group
Графиката среща Haskell - Васил Керемидчиев, Chaos Group
Deadlocks, Leaks and Race conditions - Михаил Михайлов
Визуализиране на микрофасетни повърхности на CPU и GPU - Асен Атанасов, Chaos Group
Test Driven Development: Сътворение на качествен код - Йордан Маджунков
За плаваемостта на плаващата запетая - Мартин Кръстев, Chaos Group
Как да подобря продуктивността си? - Йордан Миладинов, Chaos Group
Doctest: Поглед отвътре на модерен C++ фреймуърк за юнит тестване - Виктор Кирилов
Рендериране на 3D сцени в комиксов стил в реално време с GLSL - Христо Лесев, DiaDraw
Denoising Monte Carlo Renders - Vladimir Koylazov, Chaos Group
Да си изцапаме ръцете с GPU-та - Александър Соклев, Chaos Group
GPU, въведение - Владислав Вълчев, Chaos Group
Разпознаване и сравняване на 2D детайли - Орлин Димитров
Case study: Разработването на V-Ray Bench с Хаскел - Даниел Тасков, Chaos Group
Using MDL to Share Physically Based Materials - Lutz Kettner and Jan Jordan, NVIDIA


Registration is now closed, as all the seats are booked.
For more information contact us at


Taxi me Fib Bmw

Media Partners

Become a partner


Inter Expo Center "Tsarigradsko shose" Blvd. 147, Sofia

“Vitosha” Hall