software projects

Master Thesis Real-Time Rendering and Interactive Configuration of Apartments My master thesis on Real-Time Rendering and Interactive Configuration of Apartments, on which I worked together with Robert. From the Abstract: We present a method for high quality, real-time rendering of apartment interiors, illuminated with dynamic light and under the conditions of changing geometry. The complete lighting solution is composed of a number of techniques (area lights, indirect illumination, direct highlight) working in conjunction with a global illumination algorithm based on virtual point lights. Rendering of hundreds of lights at real-time frame rates is enabled by a deferred lighting pipeline, decoupling scene and lighting complexity. We demonstrate, that the described solution allows the user to interactively modify geometry (customisation of the apartment's layout) and lights (e.g. time of day modification). We also suggest an acceptable degradation method enabling the same lighting quality on slower machines. The prototype has been developed in the Unity engine and you're welcome to try it out (it has quite high hardware requirements, though). The thesis itself has been written in a form of a short article – a recommended read if you're interested how the technique works. (Note: the prototype has been developed in an yet unreleased Unity version 2.6. This is why we're not posting the project files yet, nor the web player build, which is actually our target platform.) Screenshots: Our geometry-aware, kernel size preserving filter. Our 3-tap PCF shadow mapping with spatially varying offsets (and filtering, which was already part of our pipeline). Downloads: Master Thesis – the article.

Balsa.dmg – the prototype, Mac OS uniwersal binary.

Balsa.zip – the prototype, Windows executable. Credits: Jakub Cupisz, Robert Cupisz

PuzzleBloom DADIU graduation game, March 2009 production Puzzle Bloom is an innovative action-puzzle game where you control the tree spirit Canotila in her quest to bring back life to her island. Canotila needs assistance of the island’s native creatures to get through the industrialised world. She flies from creature to creature and uses her powers to guide them. New life will bloom into the world for each time Canotila breaks a machine, bringing her closer to the ultimate goal of return to nature. No download needed: Solve puzzles in a full 3D environment that runs directly in your browser. Bend the static rules of traditional puzzle games by switching control over creatures. Enjoy the beautiful graphics of Canotila’s rise of nature. Have fun and let us know if you like the game! Screenshots: Fertile ground effect, Prince of Persia - like. Yeah! A bit more complex puzzle, Level 2. Moving laser and robot arena, just exploded the poor bastard... Links: Play PuzzleBloom in your browser!

Visual effects in PuzzleBloom – a poster for the Visionday conference Credits: Kuba Cupisz (Programmer) as part of Team 4, DADIU March 2009 (full credits on the game page)

Play DADIU game production using Flash Lite Play is an exploratory erotic game, involving the interaction between a man and a woman. Enjoy the art of sex by being in control. Feel your way around the man. Choose to perform moves on him and have him perform exotic moves on you. Inspire him. Tease him. Make him want more of you to get the most out of the session. Be in sync with one another by finding the right rhythm to complement each other. Perform the preferred motions during the intimate scenes by manoeuvring the phone around. Go to fast or too slow and you will be considered a poor performer. Reach pleasure successfully by finding the best pace in accordance with the music. The game was developed in Flash Lite, uses phone's accelerometer and squeezes as much as it can into teeny-tiny amount of memory available to Flash player. Downloads: Play – you'll need Nokia N95 _without_ Flash Lite 3 player.

Design document

Specs and requirements – a short document describing technology used, installation steps and software requirements. Credits: Kuba Cupisz (Lead Programmer) as part of Team 6, DADIU, March 2008

Tron Lightcycle Race game prototyping in Squeak In this project we used Squeak as a fast game prototyping platform to create yet another clone of the all-famous Tron Lightcycle Race. Squeak is a modern implementation of the Smalltalk language and environment and, besides some performance issues, which are inherent in those types of platforms, we've found Squeak a really useful tool. Screenshots: Downloads: Tron_Squeak_win.zip – Squeak distribution opening with the game image ready to play, complete with source.

Tron_Squeak_mac.zip – Same image, but with Squeak distribution for Mac OS X.

Project report – Project report describing design and implementation of the prototype. Credits: Kuba Cupisz, Robert Cupisz

Feeder DADIU game production using the Source engine Feeder is a game developed by the Team 3, as part of the DADIU education. I was the team's Programmer. “Feederism is a sexual fetish, centered on the practice of eating large amounts of food. The feeder provides the gainer with an abundant supply of food, either to encourage weight gain or simply for delight in the act of feeding.” - Wikipedia The game was developed in Valve's Source Engine, so long... Screenshots: A muffin? No, thank you. Food, food, food. Second fatness stage. Isn't she cute? Downloads: Feeder – due to Valve's Source update, currently unavailable.

Design document

Programmer's report – a short document describing my responsibilities in the production and encountered problems. Credits: Kuba Cupisz (Programmer) as part of Team 3, DADIU, March 2007

Distributed Ray Tracer final project for Advanced Computer Graphics course Depth of field, caustics, translucency, gloss. This is an example of an application of the Monte Carlo integration to solve rendering equation. We have implemented following effects: depth of field, gloss, translucency, soft shadows. Screenshots: Translucency and gloss. Soft shadows. Downloads: Project report – report describing techniques used and implementation details, a few screenshots. Credits: Kuba Cupisz