惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
GbyAI
GbyAI
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 叶小钗
A
About on SuperTechFans
M
MIT News - Artificial intelligence
宝玉的分享
宝玉的分享
雷峰网
雷峰网
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
Google DeepMind News
Google DeepMind News
博客园 - Franky
B
Blog RSS Feed
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research

Echo JS

billboard.js 4.1.0: Live resizing, configurable subchart, React subpath & CSP-safe worker From 1,256ms to 96ms: Fixing INP in a Massive React Dropdown Memdeklaro - The Basics of Decentralized Identity (DID) and Self-Sovereign Identity (SSI) How Railmid Works GitHub - evoluteur/platonic-solids: Turn the five Platonic solids in 3D, show their duals, read their measurements, and print the nets to fold your own. Sharing Application State in a URL GitHub - evoluteur/sacred-geometry: Sacred Geometry Generator: draw, tune, and export Vesica Piscis, Seed of Life, Flower of Life, Metatron's Cube, and the Golden Spiral as SVG Best of Self-Sovereign Identity: Digitalcourage, World Passport and Memdeklaro Reads Are Subscriptions - Migrating from Zustand to Coaction GitHub - evoluteur/binaural-beats: Simple web page to play binaural beats for sleep, meditation, relaxation, and focus: Delta, Theta, Alpha, Beta, and Gamma brainwave frequencies, with an optional pink or brown noise bed. toast-queue — Accessible, customizable toast notifications Building a High-Performance Data Grid in React, Vue, and Svelte I built a flight recorder for AI sessions React Authentication With JWT, Zustand, and Axios | JavaScript Tools Blog My idempotency library had one job. A dropped connection made it run the payment twice. "half-open" twice is not the same state: the bug that shaped breakwater 1.0 GitHub - evoluteur/evolutility-server-node: Framework for building REST APIs for CRUD with models rather than code (using Node.js, Express, and PostgreSQL). React Router v8 in Action: Lazy Loading and Nested Routes One $ for every environment | Xec My test suite had 100% coverage. Mutation testing still found real bugs. The type-safe data layer for Kysely | Kysera What JavaScript Obfuscation in the AI Era | JavaScript Tools Blog Using Mongoose Studio with Apache Cassandra via Data API GitHub - trekhleb/yesbrainer: 🧠 A council of AI models for the decisions that aren't no-brainers — they answer in parallel, debate to consensus, or get judged to a verdict. Browser-only, open source, bring your own keys (BYOK), no backend. Node.js has plenty of circuit breakers. So why did I build another one? My Redis library said the write succeeded. Redis was down. GitHub - Techthos/gadget: Prebuilt, interactive HTML widgets for MCP Apps in Go — data tables and forms, self-contained in a single binary, host-themed, spec-compliant. GitHub - evoluteur/react-morph-charts: React component for bubble chart, bar chart, and pie chart, with animated morphing transitions between charts, on hover, and on window resize. Interactive Metaballs Tutorial
GitHub - evoluteur/cymatics: Play a frequency and watch t...
2026-09-09 · via Echo JS

Play a frequency and watch the sand settle into its Chladni figure. Everything on the page — the plate, the sand, and the tone — is computed from the wave equation in the browser. No libraries, no images, no tables.

Cymatics

The modes

What it does

Drag the frequency slider and the plate jumps to whichever mode resonates nearest, plays that tone, and lets the sand find the figure. Two plates are available:

  • a square steel plate 1 mm thick, free at its edges — the plate Chladni himself bowed;
  • a drumhead, an ideal circular membrane fixed at its rim.

The sand is a particle simulation, not a drawing. Each grain measures how far it is from the nearest nodal line, walks downhill, and is thrown about in proportion to how much the plate moves under it. It comes to rest where the plate does not move, which is exactly what sand does on a real plate.

The mathematics

The square plate's figures are the zero set of

cos(n·πx)·cos(m·πy) − cos(m·πx)·cos(n·πy)

two modes of the same frequency, superposed so that they cancel. The Superposition slider sweeps that cancellation from one mode to the other, which is why a single frequency can show a family of figures.

The drumhead's modes are Bessel functions, Jₙ(α·r)·cos(n·θ), giving n nodal diameters and s nodal circles. The Bessel functions are computed from their own series and their zeros are found by scanning for sign changes and bisecting, so no table of zeros is needed.

The frequencies are the real ones for these idealised objects. A stiff plate obeys a fourth-order equation and rings in proportion to m² + n²; a membrane has tension but no stiffness and rings in proportion to the Bessel zero itself. Both are derived from the material constants at the top of js/cymatics.js:

const PLATE = {
  young: 200e9, // Pa, steel
  density: 7850, // kg/m3
  poisson: 0.3,
  thickness: 0.001, // m
};
const MEMBRANE = {
  speed: 100, // m/s, wave speed of the stretched skin
};

A real plate of brass or glass, with its own thickness, mounting, and imperfections, will not match these numbers exactly. The shapes are the honest part; the frequencies are those of the model.

Ernst Chladni

Ernst Chladni sprinkled sand on a metal plate and drew a violin bow along its edge. At most speeds nothing happened. At certain ones the plate rang and the sand fled the moving parts to gather along the lines that stood still. He published the figures in Entdeckungen über die Theorie des Klanges and toured Europe demonstrating them, giving acoustics its first pictures. Napoleon saw the demonstration in Paris and had the Institut de France offer a prize to whoever could explain the figures mathematically. Sophie Germain won it in 1816, on her third attempt, with the first theory of elastic surfaces.

Cymatics is open source at GitHub with MIT license.

If you like frequencies, see also my other projects Healing-Frequencies (demo) and Binaural-Beats (demo). If you like figures made of circles and lines, see Sacred-Geometry (demo) and Platonic-Solids (demo).

Copyright (c) 2026 Olivier Giulieri.