This show reel features work I did at Dimenco as a game developer. In a team of 4 we developed several games and experiences to showcase Dimenco's SR hardware. This hardware consists of a 3D lenticular display, hand tracker and 3D audio. It was fun thinking of new ways to interact with this special hardware setup.
Shows technical artist work done at Dovetail Games. Coding in blueprints, rigging, time of day system, water shader, slope and weather responsive landscape etc.
Read more on performance profiling
I was tasked to research photogrammetry and document the workflow I defined.
Click on 'Read more' to see more details on my photogrammetry tests.
As my graduation project I digitized a box of okapi bones and made it come alive.
The Digital Okapi
This project revolved around digitizing a real okapi skeleton for my graduation project. I took the initiative to contact a natural history museum in Holland called Naturalis. I was allowed to work on one of their skeletons, but it had to be done inside the storage chambers of Naturalis itself. There were few skeletons suitable for digitizing. We chose the okapi for the skeleton was of nice quality, the bones were not too big or too small and because it wasn't a very known animal, which would make my work unique.
I used the microscribe 3d digitizer, which was the only option i had at that time. (a student can't afford a new digitizer) It took me 3,5 months before i had digitized 100 unique bones. It took another 2 months to clean up the raw date as shown in the video. In the end I assembled the skeleton and added a blue mesh to represent the cartilage between the ribs. I also wrote a paper on digitizing skeletons.
The research i did into this animal and its closest relative, the giraffe, has given me a greater insight in animal anatomy, behaviour and locomotion.
Procedural Spiders in Houdini
What are procedural systems?
Procedural Systems are tools that are built to make a task easier and faster.
Building the tool takes some time, but once it's build, it can fulfill a task within the click of a button.
My procedural modelling tool: Spider Generator
For the procedural modelling class I had to make a tool which could randomly produce varieties of the chosen subject, specifically in proportions, without loosing its 'structure'.
Many chose static objects like buildings or guns, but to challenge myself I picked an organis subject; the spider.
The system creates spiders with different proportions in various parts of the body, without detaching those parts.
Each generated spider can be easily adjusted to the liking of the user.
This document shows the research I did on spider varieties and their structural system.
Procedural Spider Document
My main rigging skills are included in the 2014 demoreel.
Click here to view my 2014 rigging demoreel
Here is an additional video for a reposable rig.
Click here to view a demonstration video
This rig features an extra parent layer which changes the space in which the regular controls move. This preserves the animation and allows for easy adjustments to the rig when for example a characters chest is widened or other proportions are changed.
This also makes for an easy to setup template that can be used for all characters that share the same joint hierarchy but have different proportions.
This is the result of a 4 day game jam on a pitch I proposed on having the first VR barber/hairdressing experience, but with slighly more unusual customers. I led the development of the project and worked on the hair, foam spray, mirror, interactive elements etc . The hair was set up as a skeletal mesh, which made it combable and a dynamic material which gives the illusion of it getting cut shorter. It was developed for VR on the Oculus platform.
Links to code snippets:
Breadth-first search, node graph challenge
Pointers are memory addresses and are usefull when operating on large classes. Instead of moving or copying classes around, which can be costly memory operations, you can just store and reference their address.
Lists under the hood are pointers to the first element with a size determined by its class. Accessing the second index of a list just offsets the initial element's memory address by the size of this type's memory.
Other c++ concept competencies
Pass by reference