Kalm
A Pomodoro timer with brain wave-responsive 3D environments and ambient soundscapes
Overview
Kalm is a Pomodoro Timer app featuring ambient sounds and 3D graphics. It uses a Muse headband to analyze brain waves and display interactive visuals that reflect the user's current state. As the user becomes more stressed, the ambience (rain sounds) and visuals (lighting) adjust to help guide them toward a calmer state.
Project Goals
This project was created for my final Computer Graphics coursework. My team and I were tasked with building an app that implemented our learnings. While the course focused on drawing 3D graphics with basic frameworks like WebGL to understand the fundamentals (along with some Unity), we chose to use Blender and a modern stack including React Three Fiber, Next.js, and Golang to challenge ourselves with new technologies.
Screenshots



Learnings
I was primarily involved in creating assets with Blender, designing two of the three available environments. Initially, I expected this to be a tedious task of manually modeling every detail. However, through research, I discovered procedural workflows in Blender that allowed me to build a base and generate surface randomness efficiently, proving Blender to be a powerful tool for asset creation.
Beyond modeling, the assets needed to be loaded into our frontend. Using Next.js with React Three Fiber, we utilized gltfjsx to transform 3D objects into efficient JSX components.
We also faced performance challenges; rendering the detailed environments caused lag and device overheating—distracting for a focus app. I addressed this by optimizing the 3D assets, reducing texture map sizes and simplifying surface geometry.
Attributions
From Left to Right
Special thanks to our lecturer, Hadziq Fabroyir, for introducing us to the Muse headband and providing the device :)