Projects GitHub LinkedIn About Me

Cinematic Bugatti

HDRP Unity scene with custom graphics and scripts

Content Picture

Dynamic camera with customizable script was made that allows creating multiple paths each with different speed, transition and darkening effects. The end result is a cinematic-like animation of the main camera, which is mostly achieved by a Unity coroutine logic. The scene is using HDRP pipeline for better visual quality. The Bugatti'38 was modeled in Maya and optimized for games - consists of about 180k triangles.

Inspired by the synthwave and cyberpunk neon styles, a few custom shader effects were implemented: purple stripes that move vertically with the car speed representing the retro sun graphics and old screen noise achieved by constantly moving transparent horizontal lines ontop of the texture. For the glitch effect a few tricks were made: horizontal displacement of the UV, based on the vertical position, and both speed and strength being set from a Unity script. The final disappearing cuts the output in a star-like shape and saturates the colors.

Plide UI

Android service with OpenGL graphics

The application provides an interface for faster mobile device control. It's written in C++ with OpenGL and Java using Android Studio. The code consists of custom classes for multithreading, button interaction and 2D graphics rendering. The goal is to create an easier way to start apps and control device features. That is achieved by one finger gestures in a small touch screen area for the best user experience.

Content Picture

"Opening applications is as quick as pointing the button icon and lifting the finger up!"

The first step is to activate the PlideUI menu by a swipe gesture from the screen edge. The whole structure of menus and submenus is predefined by the user and is fully customizable. PlideUI can find your application's start command and icon texture by just typing the name of it. The usage of custom textures for buttons is available and other useful functions are coming soon.

Opening a predifined submenu can be done by pointing the icon and then dragging back your finger to the center circle. A preview of the submenu will be showed and then the current menu will be switched with the new one. To go back into the previous menu, the user needs to point to the empty sector. This gives freedom to group and arrange all of the desired apps for quicker access.

Interior Walkthrough

VR interactive environment for interior design

Content Picture

The application uses a modern VR approach for walking around inside an interior. The main features include customizing object's materials runtime with the provided joysticks and interacting with pickable items.

A simple quiz game was made for the Careers day to challenge the visitors. The users had to select specific objects, which triggers a world-space UI that represents a game with points and evaluation.

Content Picture
Content Picture

The interactions start from having an intuitive hand gestures for walking around, by swinging your hands the way you run or walk in real life. An elegant VR UI is added for adjusting the in-game avatar speed. Another UI is used for changing each objects material and color overlay.

Content Picture

Aircraft Marshalling Simulator

VR Simulator for learning aircraft marshalling.

Content Picture

The simulator has a custom 3D gesture recognizer system for recognizing movements made with the joysticks. Another interesting feature is the evaluation method for giving final mark to the practitioner, which is based on the correct signals with the joysticks. Made with Unity.

Navigating the pilot to make a good trajectory for parking the airplane is another evaluation. The system matches the perfect trajectory of the airplane with the one that the user achieved. The end mark is a combination of both trajectory match, parked position spot and orientation deviation.

Content Picture
Content Picture

"Doing well!", "Try to do the same movements as me!", "Lift the hands a bit!", "Hands must be orientated sideways!"

The avatar, that is teaching you is an AI with behaviour tree, that responds to the recognized movements, that the user does and tries to help runtime, by suggesting improvements.

Content Picture
Content Picture

AR Watch

Try on app for hand watches

Content Picture

The concept is based on a high quality try on app with options for hyper customization for the hand watch. The technical highlights on this prototype are the custom runtime reflections from the surrounding area, that run even on older phones, without fps drop. The reflections on the watch are from the back and front cameras streams. For performance reasons, a custom combination of vertex and surface shaders is used, in order to get instantly the back camera feed as a spherical reflection on the watch.

The front camera's photo is taken only once at startup of the app and is merged with the live back camera stream. For combining both cameras images and creating a reflection map, a special sphercical reflection mapping is used with an adjustable blured transition between them. This allows you to see your face in the watch, when it is pointed against you as looking into a mirror. Made with Unity and Vuforia.

Content Picture

Bullet Holes shader

Custom shader for cutting bullet holes in material

Content Picture

The bullet holes shader can be used for specific game objects, which require more realistic damage. It is written in HLSL and combined with a custom script for passing holes coordinates.

A nice playground arena with a shooting gun has been created in order to test the solution. The fragment shader is cutting pixels based on the hole coordinates and creating a burned area effect around the hole. The vertex function is offsetting the meshes vertices around the affected area from the impact.

Content Picture

My OpenGL Game Engine

Custom game engine, started from scratch

Content Picture

For deeper understanding of the game engines, I started my own implementation of one from scratch. The currently developed version can instantiate two types of game objects, one with a simple predefined mesh, and another, loaded from a folder. There is an option for creating Materials with external shaders. The user input from keyboard can rotate the objects. Check out the work in progress at: GITHUB LINK


Personal Information

Skills

Programming

Skilled in OOP with C++ and C#. Have experience with Android studio(NDK).

Unity game engine

Several simulators for VR and AR done in one of the top game engines. Using custom solutions for solving specific problems, including photogrammetry technologies and involving in side projects for technological events.

3D graphics coding

Familiar with OpenGL and DirectX basis for achieving specific graphics effects and rendering pipeline.

3D technical artist

Previuosly working as a 3D junior artist, using Maya, 3ds Max and photoshop. Have some experience optimising workflows including writing maxscripts.

Education

C++ Advanced certificate

Softuni certificate for completed OOP course in C++, covering memory management and main data structures.

Unity Advanced and Unity game dev courses

Taken 1st place in both courses for creating the most exciting projects, working with C# and covering many different game engine aspects.

Master degree in Software Engineering

Master thesis topic: "Simulator for training aircraft marshallers through virtual reality." - UNIBIT

Bachelor degree in Engineering Design

Bachelor thesis topic: "Designing an app for fast mobile device control." - Technical university of Sofia


About Me

Picture of me.

  As a child, I've been interested in technology and creativity and always strived to invent new things. Since the day I drew my first custom board game till now, I'm still excited about inventions that inspire the audiance. For the past 2 years, I've been developing immersive virtual worlds and exploring the infinite universe of the computer technologies combined with creativity.

+359883440788 naskovvt@abv.bg LinkedIn