Projects:
Head-Up Display
21 August 2021
The Head-up Display is a home-made version of the displays used on military jet fighters but designed and built using off-the-shelf software and materials. HUDs essentially "project" an artifical image that appears to float in mid-air and to blend with the image of the real world.

The optical design is based on a Petzval lens with a field flattener similar to the designs used on most jet fighters and was developed and optimized using the OSLO EDU software. The optical performance of the design was validated by comparing it against the performance of the A-10 HUD provided in the book "Optical Design for Visual Systems" by Bruce H. Walker. Overall, the optical performance is very good with most optical aberrations being well corrected and comparable to the A-10 HUD design. The only exception is spherical aberration which was impossible to correct to optimal values due to the difficulty to obtain aspheric and doublet lenses of large radius which are very expensive. Nevertheless, the performance is very good and results in a high quality image that is comfortable to look at.

The image is provided by a common LCD display that I modified to provide the high brightness required for the HUD image to be visible against daylight. The modification consisted in replacing the original backlight of the LCD by a high power LED light. The LED light generates lots of heat both on its back surface and on the LCD panel so a heat sink and cooling fans were added to keep the temperature under control.

A Raspberry Pi is used to provide video signal to the LCD display and to distribute electrical power from the USB port to the cooling fans.

The structure was designed in CAD software and manufactured using a 3D printer.
Monocle
17 January 2018
The Monocle is an augmented reality eyepiece that provides infrared (IR) vision, night vision and navigation data. This project is the result of 5 years of research and development.

The monocle's IR vision allows to see the world in the IR spectrum both during day and night time. During daytime, IR light is provided by sunlight while at night or in dark places it's provided by the embedded IR illuminator.

The navigation data consists of an artificial horizon and compass generated using data obtained from inertial and magnetometer sensors and processed in software using a Kalman Filter.

The optics were carefully designed using optical CAD software in order to obtain an optical system that is small enough to be fitted into a wearable device while providing a high quality image focused at a comfortable viewing distance.

The computing is done by a Rasberry Pi Zero running software written in C++. All the image processing is done in OpenGL ES making heavy use of GLSL shaders for filtering and anti-aliasing.

The Monocle's case was designed using CAD software and 3D printed on a Blocks One printer.

Kindergarten Revisited
13 May 2013
Kindergarten Revisited is a remake of the old Kindergarten demo showing the new global illumination system of the Serenity Engine. This new system is based on Voxel Cone Tracing and can generate both diffuse global illumination and reflections in real-time for completely dynamic scenes.

The demo also comes with a set of new features including advanced special effects, a terrain system and weather effects. But the most important new feature is the built-in editor that you can use to manipulate the scene and even create your own scenes.

Minimum Hardware Requirements:
Nvidia GTX 600 Series (untested on AMD hardware)
DOWNLOAD
Kindergarten
26 November 2010
Kindergarten is a demonstration of the global illumination capabilities of the Serenity Engine. The demo features a beatiful scene full of vivid colors that emphasize the interaction of light with the scene. The lighting is completely dynamic, so if you like you can open the options menu and play with the parameters.

Once again, the whole demo was made by myself, from the programming to the artwork, and is definetely my most complex work so far as the engine and the demo took together more than a year of hard work to complete.


I hope you enjoy it!


Minimum Hardware Requirements:
Nvidia GTX 260 (untested on AMD hardware)
Quad Core Processor

DOWNLOAD
Mass Combat Vector
23 July 2009
Mass Combat Vector is a first-person-shooter where you face an epic battle against a war machine. The battle occurs inside a cathedral where you can use the advantage of close-quarters to overcome the machine's imense power.

This is the first game I developed using the Voltaico Game Engine.
This game is also a completely "HUDless" first-person-shooter. No aiming mark, ammo count or health gauge are shown on the screen. All the information the player needs is given through alternative tecnhiques like iron sights for aiming, see-through magazine for ammo, and special visual effects for the health.

Another cool thing about this game features is that the movement of the Mech is not pre-programmed or artistically created. The Mech uses a mix of physics and simple inverse-kinematics to create movement that reacts to your actions.

I developed this game completely by myself. All the design, programming, 3D models, animations and textures were created by me, which was an overwhelming achievement (when it was finished I got a sensation like if I had just climbed Mount Everest :P ).

MINIMUM HARDWARE REQUIREMENTS:
- NVIDIA 9600 or ATI HD 4650
DOWNLOAD
Creepy Escape
23 July 2009
In Creepy Escape, you wake up on the bedroom of an old haunted mansion and you must find a way of getting out.
You are affected by the fear of the haunted creatures that guard the mansion and if you stay too close too long you'll be scared to death. To avoid them, you'll have to use stealth movement which includes blowing out candles to conceal yourself in the dark and hide inside furniture.
You'll also have to interact with other characters that will help you or somehow play a role on your escape plan.

I developed this game along with my coleagues Ricardo Mendes and Fernando Benevides using the Ogre graphics engine and the NxOgre physics libary.

CONTROLS:
WSAD - movement
E - interact
SPACE (press and hold)- first person view
ESC - quit

SOFTWARE REQUIREMENTS:
NVIDIA Physx (follow the "NVIDIA Physx System Software" link)
DOWNLOAD
PatchAmok
23 July 2009
PatchAmok is a game based on cloth physics. In this game you have to move the ball through a series of checkpoints, but you don't have direct control over the ball, you move it by deforming the shapes of the cloth patches that are placed throughout the scene.

I developed this game along with two coleagues, Ricardo Mendes who assisted me with the programming, and Joana Lafuente who did an awesome job with the 2D art for the interface.
The engine used for this game is a very simple engine called cgLib that was developed for learning purposes by Carlos Martinho, a professor at my university.

The physics engine used in this game was written by me and features cloth simulation using a spring model, sphere-triangle collision detection and sphere-sphere collision detection with response. For the cloth-ball collisions I used the neat trick of using a collection of small spheres connected by springs which allowed for a fast and stable simulation.

WARNING: We made the main menu in portuguese but it is so simple that it shouldn't pose any problems to you.

CONTROLS:
LMB (click and drag) - select and move a point from the cloth
RMB (click and drag) - rotate the camera around the ball
LMB + RMB (click and drag up and down) - move camera torwards/away from ball
SPACE - press it while dragging a point of cloth to pin it
D - debug mode
ENTER - reset game
ESC- main menu
DOWNLOAD



Webmaster: Joao Cabeleira