128kb Museum
by Bruno Alexandre Da Cruz Costa, posted on December 1, 2025


Who I am
My name is Bruno Alexandre da Cruz Costa and I am a software development engineer with a huge passion for museums. As a media designer, I intend to further develop my scenography and museology skills to become a ‘museum designer’. My aim is to combine my current skills and knowledge to create more engaging exhibitions.
Idea & Process
This project is a combination of all my comrades project. I created a virtual museum with React Three Fiber with the purpose to display and show the GIFs created by my classmates during the 128kb workshop done with Tim Rodenbroeker.
I created a room with walls dedicated to each designer with 4 GIFs displayed : 2 on both sides.
The whole disposition is generated automatically and the last easter egg is a beautiful starry sky 🙂
Gallery






Videos
My favorite code
My favorite part of the project is the disposition of the elements, I used basic but interesting maths to generate automatically the displays and the walls in the museum:
const SIZE: [number, number, number] = [10, 5, 2];
const COLUMNS = 2;
const SPACING_X = 4; // Horizontal spacing between GIFs
const MAX_GIFS = 4;
const halfSpacingX = ((COLUMNS - 1) * SPACING_X) / 2;
const isBackSide = index >= 2;
const localIndex = index % 2;
const sideOffset = isBackSide ? -SIZE[2] / 2 - 0.1 : SIZE[2] / 2 + 0.1;
const col = localIndex;
const displayPosition: [number, number, number] = [
position[0] - halfSpacingX + col * SPACING_X,
position[1],
position[2] + sideOffset,
];
const gifRotation: [number, number, number] = isBackSide ? [0, Math.PI, 0] : [0, 0, 0];
return (
<GifDisplay
key={gif.id}
gif={gif}
position={displayPosition}
rotation={gifRotation}
isBackSide={isBackSide}
onEnter={onEnter}
onExit={onExit}
/>