Frontend

Cymatics - Chladni Pattern Visualization - 3D & 2D

Interactive visualization of Chladni patterns in both 3D using Three.js and 2D using P5.js. This app simulates particle movement on vibrating surfaces, creating mesmerizing patterns controlled by adjustable parameters.

Overview

A Next.js-based application that visualizes Chladni cymatics patterns in both 2D and 3D environments. The 2D version uses P5.js to simulate particles that form patterns according to the Chladni equation, while the 3D version leverages Three.js and React Three Fiber for immersive visualization. The app features interactive controls allowing users to adjust frequency, amplitude, vibration strength, and particle count parameters to explore various cymatics patterns in real-time.

Challenges

  • Optimizing performance while rendering up to 20,000 particles in real-time

  • Creating smooth transitions between parameter changes to maintain visual appeal

  • Implementing the mathematical Chladni equations correctly to produce accurate cymatics patterns

  • Ensuring responsive design and consistent experience across both 2D and 3D visualizations

Solutions

  • Utilized instanced mesh rendering in Three.js for efficient 3D particle management

  • Implemented react-spring for smooth parameter transitions and animations

  • Applied mathematical optimization to the Chladni equation implementation

  • Created dynamic canvas sizing to adapt to different screen dimensions

Results

  • Achieved smooth real-time visualization with up to 20,000 particles

  • Implemented intuitive controls with informative tooltips for educational purposes

  • Successfully created both 2D and 3D visualization options with consistent interfaces

  • Ensured responsive design that adapts to various screen sizes and devices

Project Details

Category

Frontend

Technologies

React
Next.js
Three.js
P5.js
TypeScript
Cymatics

Key Metrics

Up to 20,000

Particles

2D & 3D

Visualization Modes

6

Interactive Parameters

Related Projects

Modern Portfolio Website
Next.js
TypeScript
Tailwind CSS
Framer Motion
Responsive Design
Monorepo
UI Components
Frontend

Modern Portfolio Website

A personal portfolio website built with Next.js, TypeScript, and Tailwind CSS featuring animated UI components, dynamic content loading, and responsive design.