Project

Vulkan Raytracer

Vulkan Raytracer

Overview

This project is a Vulkan-based raytracer that utilizes the VK_KHR_ray_tracing_pipeline extension. It implements real-time ray tracing with acceleration structures and features such as temporal anti-aliasing, any-hit shaders for transparency, and sample accumulation directly in the ray generation shader. It was later extended into a recursive path tracer for realistic lighting simulations.

Key Features

  • Use of Acceleration Structure: Efficient ray-triangle intersections using Vulkan's acceleration structures.
  • Temporal Anti-Aliasing: Subpixel jitter with per-frame accumulation for smoother edges and better image quality.
  • Any-Hit Shader: Supports alpha cutout and conditional intersection handling, useful for simulating transparent surfaces.
  • Recursive Path Tracing: Path tracing implemented in the RayGen shader for optimal sample accumulation without excessive traceRay calls.

Performance Optimizations

  • Sample accumulation done inside the RayGen shader loop to avoid performance-heavy multiple trace calls.
  • Utilizes Vulkan's efficient memory handling and AS compaction to maintain responsiveness.

Repository

View on GitHub

ProPlatform

Description

A platformer level design tool that enables procedural generation with extensive user control. It allows users to define platform curvature using splines (Bezier or Linear) and customize the spacing between platforms. The tool is being expanded with additional features, including procedural stair placement by calculating elevation, providing greater flexibility and precision in level design.

Technologies Used

  • Unity: For game development and procedural generation.

GitHub Link

View on GitHub
ProPlatform

Grim Tools: Event-Based Game Framework

GrimTools

Overview

Grim Tools is an event-based game framework designed for rapid game prototyping by leveraging the power of ScriptableObjects. It includes essential features that developers frequently need, such as object pooling, an economy manager that automatically converts large numbers (e.g., 5000 to 5K for better readability), an input manager supporting various controls like swipe, drag, and joystick, and much more.

Key Features

  • Event-Driven Game State Management: A flexible system that manages game states efficiently using events and ScriptableObjects
  • Modular Scene Management: Seamless scene transitions with a variety of animation effects.
  • PersistantData: A wrapper more powerful and flexible than PlayerPrefs
  • Editor Scripting: Tag and Layer highlighting, custom headers etc

Scene Utility

  • An editor tool developed by me that features multiple functionalities, including scene loading, unloading, quick switching, batch operations, and more

Repository

View on GitHub

Pathtracer

Description

A pathtracer capable of rendering photorealistic images, developed for the Computer Graphics course at Chalmers. This project showcases advanced rendering techniques, including global illumination, material modeling, and importance sampling.

Libraries

  • OpenGL graphics API
  • SDL2
  • CMake

Link

View on GitHub
Pathtracer

Crystal Gem Slot Game

Crystal Gem Slot Game

Description

Crystal Gem Slot Game is a modern slot machine game built with Pixi.js. It features smooth reel spin animations, dynamic paylines (coming soon), and a visually appealing design inspired by popular slot games like Starburst. Spin the reels, visualize paylines (coming soon), and enjoy the thrill of winning!

Technologies Used

  • Pixi.js: For smooth 2D rendering and animations.
  • TypeScript: For type-safe and maintainable code.
  • Vite: For fast development and bundling.
  • Local Assets: Uses local gem sprites for symbols.

GitHub Link

View on GitHub