Skip to content

Repository files navigation


🧬 What is this?

This is not the usual About Me → Skills → Projects → Contact template.

It's an interactive, cinematic archive of everything one person builds, explores, writes, renders, and obsesses over — engineering, AI, film, 3D, and fiction, all living inside one experience instead of four separate portfolios.

         ┌──────────────┐
         │ MECHATRONICS │
         └──────┬───────┘
                │
                ▼
     ┌───────────────────────┐
     │       SYSTEMS         │
     └─────────┬─────────────┘
              / \
             /   \
            ▼     ▼
      ┌───────┐ ┌───────┐
      │  AI   │ │ CODE  │
      └───┬───┘ └───┬───┘
          │         │
          └────┬────┘
               ▼
       ┌──────────────┐
       │ EXPERIMENTS  │
       └──────┬───────┘
              │
  ┌───────────┼───────────┐
  ▼           ▼           ▼
🎬 FILM      🧊 3D      📖 WRITING

The interesting part isn't each discipline on its own — it's what happens when they collide.


📚 Table of Contents

✨ Features

🧊 Immersive Visuals

  • Interactive WebGL / Three.js 3D environments
  • Cinematic scroll-driven storytelling
  • Film grain & atmospheric lighting layers
  • Custom, context-aware cursor system

🎞️ Motion & Sound

  • GSAP-powered scroll choreography
  • Framer Motion micro-interactions
  • Procedural / ambient audio engine
  • Buttery-smooth scrolling via Lenis

📚 Interactive Archive

  • PAGE.OS — discovery-driven project archive
  • Scroll-controlled manuscript / writing experience
  • Experimental Cipher Lab (custom glyph system)
  • Generative / creative-coding experiments

📱 Responsive by Design

  • Dedicated mobile shell & layouts
  • Touch-first interaction handling
  • Adaptive layouts across breakpoints

♿ Accessible

  • prefers-reduced-motion support
  • Full keyboard navigation
  • Non-3D graceful fallbacks

⚡ Performance & Analytics

  • Next.js App Router + SSR
  • Vercel Analytics built in
  • Optimized asset loading

🖥️ Live Preview

Designed as an interactive visual experience — not a static résumé.


🧰 Tech Stack

Core Framework

Next.js React TypeScript Tailwind CSS

3D & Motion

Three.js React Three Fiber GSAP Framer Motion Lenis

Tooling & Deployment

ESLint PostCSS Vercel Vercel Analytics Git

📦 View full dependency list
Dependency Purpose
next React framework — routing, SSR, build system
react / react-dom UI rendering
typescript Static typing
three Core WebGL 3D engine
@react-three/fiber React renderer for Three.js
@react-three/drei Helpers/abstractions for R3F
gsap Scroll & timeline animation
framer-motion Declarative UI motion
@studio-freight/lenis Smooth-scroll physics
tailwindcss Utility-first styling
tailwind-merge / clsx Conditional class management
lucide-react Icon set
@vercel/analytics Traffic & performance insights

🏗️ Project Architecture

src/
│
├── app/                          # Next.js App Router
│   ├── layout.tsx
│   ├── page.tsx
│   └── globals.css
│
├── components/
│   ├── 3d/                       # Three.js / WebGL canvases
│   │   ├── ArchiveCoreCanvas.tsx
│   │   ├── IntersectionHeroCanvas.tsx
│   │   ├── MonolithHeroCanvas.tsx
│   │   └── UnfinishedArtifactCanvas.tsx
│   │
│   ├── animations/                # Cursor & film-grain FX
│   │   ├── CustomCursor.tsx
│   │   └── FilmGrain.tsx
│   │
│   ├── audio/                     # Procedural / ambient audio
│   │   └── SoundEngine.ts
│   │
│   ├── navigation/
│   │   ├── ExhibitionNav.tsx
│   │   └── SystemNavigation.tsx
│   │
│   ├── mobile/
│   │   └── MobilePortfolioShell.tsx
│   │
│   ├── sections/                  # Page sections / scenes
│   │   ├── HeroSection.tsx
│   │   ├── AboutMeSection.tsx
│   │   ├── CapabilityMapSection.tsx
│   │   ├── ProjectsSection.tsx
│   │   ├── WorkExhibitionSection.tsx
│   │   ├── PageOSArchiveSection.tsx
│   │   ├── CipherLabSection.tsx
│   │   ├── CreativeCodingSection.tsx
│   │   ├── ConstellationSection.tsx
│   │   ├── DualChannelSection.tsx
│   │   ├── RoomForOneMoreSection.tsx
│   │   ├── ExploreSection.tsx
│   │   ├── EducationSection.tsx
│   │   ├── ProjectModal.tsx
│   │   └── FooterSection.tsx
│   │
│   └── ui/
│       └── GlyphSymbol.tsx
│
├── hooks/
│   └── useIsMobile.ts
│
└── lib/
    ├── data/                      # Content-as-data
    │   ├── capabilities.ts
    │   ├── cipher.ts
    │   ├── explorations.ts
    │   └── projects.ts
    └── utils.ts

⚙️ How It Works

The homepage isn't one monolithic component — it's a collection of independent interactive systems stitched into one continuous experience.

                 ┌─────────────┐
                 │   NEXT.JS   │
                 │     APP     │
                 └──────┬──────┘
                        │
     ┌──────────────────┼──────────────────┐
     │                  │                  │
     ▼                  ▼                  ▼
┌──────────┐       ┌──────────┐      ┌──────────┐
│ THREE.JS │       │   GSAP   │      │  FRAMER  │
│  WEBGL   │       │  SCROLL  │      │  MOTION  │
└────┬─────┘       └────┬─────┘      └────┬─────┘
     │                  │                  │
     └──────────────────┼──────────────────┘
                        ▼
              ┌──────────────────┐
              │   EXPERIENCE     │
              │   ORCHESTRATOR   │
              └────────┬─────────┘
                       │
     ┌─────────────────┼─────────────────┐
     ▼                 ▼                 ▼
┌──────────┐      ┌──────────┐      ┌──────────┐
│  AUDIO   │      │  ARCHIVE  │      │ WRITING  │
│  ENGINE  │      │ (PAGE.OS) │      │  ENGINE  │
└──────────┘      └──────────┘      └──────────┘

In short:

  1. Lenis smooths scroll input into a physics-based, buttery scroll feel.
  2. GSAP ScrollTrigger ties animation timelines to that scroll position — driving section transitions, reveals, and choreography.
  3. React Three Fiber / Three.js renders WebGL scenes as declarative React components, layered underneath or inside sections.
  4. Framer Motion handles smaller UI-level transitions (hover states, modals, page-level fades).
  5. A custom cursor system listens for context (hovering a link, a 3D object, text, etc.) and morphs accordingly.
  6. The Sound Engine plays ambient/interaction audio tied to scroll position and user interaction.
  7. useIsMobile and CSS breakpoints swap the desktop experience for a dedicated, lighter-weight MobilePortfolioShell.
  8. All of it respects prefers-reduced-motion, dropping into simplified, accessible fallbacks when needed.

🗂️ Project Showcase

📚 01 / PAGE.OS — Reading & Knowledge-Discovery Environment

Where literature meets exploration.

A reading platform where books aren't isolated documents — they're things you can discover, connect, collect, and explore, blending open/public-domain literature and artwork into one archive.

Features: Book discovery · Personal library · Bookmarks · Reading statistics · Classic/Lounge reader modes · Infinite discovery · Open artwork exploration · Ambient reading audio

Stack: Next.js · React · TypeScript · Tailwind CSS · Firebase · PDF.js

→ View Repository

🎧 02 / ANE — Audio Narrative Engine

What if an audiobook understood what was happening?

An experimental ML project exploring context-aware narrative audio — instead of a flat TEXT → VOICE pipeline, it classifies scene, emotion, and dialogue to drive a responsive audio environment.

Explores: NLP · Scene classification · Narrative understanding · Local inference · ML pipelines · Procedural sound

Stack: Python · PyTorch · MiniLM · FastAPI · Pydantic · Ollama

🎬 03 / RESIDUAL — Film, Direction & Visual Storytelling

A filmmaking identity built around light + space + texture + silence + time = atmosphere — storytelling that doesn't explain everything, where absence of information is often the information.

Tools: DaVinci Resolve · Blender · Sound design · Composition · Motion/editing

🚪 04 / THE FIFTH EXIT — Psychological Horror

Five exits, five rooms, one person, and architecture that refuses to behave. An experimental psychological-horror concept exploring liminal spaces, dissociation, identity, and impossible architecture — where the environment becomes part of the story.

📖 05 / A Room for One More — Psychological Horror Manuscript

What happens when the place you're living in knows something about you that you don't?

A manuscript following Ira Elowen Mireille through grief → isolation → memory → paranoia → identity, presented as an interactive archival reading experience.

🧊 06 / 3D — Blender, Procedural Geometry & Spatial Experiments

A visual laboratory for procedural geometry, Geometry Nodes, architectural forms, lighting, and atmospheric spatial composition — chasing one question: how do you make something digital feel physically heavy?

🔐 07 / Cipher — An Experimental Glyph System

A custom geometric alphabet — not built to replace cryptography, but to explore language → symbol → geometry → encoding → visual language. Includes an interactive Cipher Lab for live text-to-glyph translation.

🧬 08 / Creative Coding — The Sketchbook

Particle systems, vector fields, procedural geometry, mathematical curves, generative typography, and WebGL motion studies. Some become projects. Some become dead ends. Both are useful.


🧪 Design Principles

Principle Meaning
01 · Make It Mean Something An animation should communicate something. A 3D object should have a reason to exist.
02 · Different Work, Different Language A neural model shouldn't look like a horror manuscript. A film shouldn't look like a dashboard.
03 · Interaction Over Decoration If interaction communicates an idea better than a paragraph, use interaction. If not — write the paragraph, make the film, or open Blender.

♿ Accessibility

Immersion shouldn't come at the cost of usability:

  • prefers-reduced-motion support
  • ✅ Full keyboard interaction
  • ✅ Touch-optimized interaction
  • ✅ Dedicated mobile-specific layouts
  • ✅ Non-3D graceful fallbacks
  • ✅ Accessible interactive controls

🧭 Current State

╭──────────────────────────────────────────────╮
│                                               │
│  PAGE.OS              ● BUILDING             │
│  ANE                   ● EXPLORING            │
│  RESIDUAL              ● ACTIVE               │
│  THE FIFTH EXIT        ● DEVELOPING           │
│  A ROOM FOR ONE MORE   ● WRITING              │
│  3D                    ● EXPERIMENTING        │
│  CIPHER                ● EXPERIMENTAL         │
│                                               │
╰──────────────────────────────────────────────╯

🗺️ Roadmap

  • More original media (film, writing, audio)
  • Deeper case studies per project
  • Expanded 3D experiments
  • New creative-coding sketches
  • Continued PAGE.OS feature expansion
  • Ongoing accessibility & performance passes

The roadmap is intentionally unstable — projects evolve, ideas mutate, and some things come back months later wearing a completely different shape.


🤝 Contributing & Contact

This is a personal portfolio, but feedback, bug reports, and suggestions are always welcome.

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/something-cool)
  3. Commit your changes (git commit -m "Add something cool")
  4. Push to the branch (git push origin feature/something-cool)
  5. Open a Pull Request

Portfolio GitHub

STILL BUILDING. STILL EXPLORING. STILL FIGURING IT OUT.

Built with TypeScript, React, Three.js, GSAP, caffeine, and an unreasonable number of ideas.

About

Interactive cinematic portfolio (Next.js, Three.js, GSAP) unifying software, AI, film, 3D, and writing into one scroll-driven experience — the interface is part of the work.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages