All Projects → montaguegabe → Wave Simulator

montaguegabe / Wave Simulator

A graphical 3D simulation of the wave and heat equations

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wave Simulator

gamedex
👾 The code for my game dev + computer graphics experiments on YouTube.
Stars: ✭ 165 (+3200%)
Mutual labels:  threejs, three-js
TweetMigration
A WebGL heatmap of global Twitter activity
Stars: ✭ 42 (+740%)
Mutual labels:  threejs, three-js
WebGL-Billiards
ThreeJS based 8-ball pool
Stars: ✭ 28 (+460%)
Mutual labels:  threejs, three-js
Trois
✨ ThreeJS + VueJS 3 + ViteJS ⚡
Stars: ✭ 648 (+12860%)
Mutual labels:  threejs, three-js
Three Mesh Bvh
A BVH implementation to speed up raycasting against three.js meshes.
Stars: ✭ 302 (+5940%)
Mutual labels:  threejs, three-js
Manim.three.js
A web compatible html5 canvas based mathematical rendering engine like the manim by 3b1b
Stars: ✭ 14 (+180%)
Mutual labels:  threejs, three-js
three-kt-wrapper
Kotlin wrappers for Three.js
Stars: ✭ 46 (+820%)
Mutual labels:  threejs, three-js
three-js-fundamentals-r3f
Examples from the Three.js Fundamentals website recreated in react-three-fiber renderer.
Stars: ✭ 84 (+1580%)
Mutual labels:  threejs, three-js
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (+5460%)
Mutual labels:  threejs, three-js
Livecodelab
a web based livecoding environment
Stars: ✭ 276 (+5420%)
Mutual labels:  threejs, three-js
EduSmart
It utilizes 3D, Augmented reality to give real-life simulations or feels of various models and make the learning process more impactful and fascinating. With an interactive live feature, students can ask the teacher their doubts instantly and also discuss.
Stars: ✭ 23 (+360%)
Mutual labels:  threejs, three-js
Vue Gl
Vue.js components rendering 3D WebGL graphics reactively with three.js
Stars: ✭ 434 (+8580%)
Mutual labels:  threejs, three-js
revit-family-web-viewer
Revit Web Viewer is a Three.js-based project viewer. Revit projects / families must be exported using RvtVa3cExporter (https://github.com/va3c/RvtVa3c)
Stars: ✭ 48 (+860%)
Mutual labels:  threejs, three-js
react-with-threejs-example
An example project integrating React with three.js
Stars: ✭ 27 (+440%)
Mutual labels:  threejs, three-js
THREE.InfiniteGridHelper
Infinite anti-aliased grid.
Stars: ✭ 101 (+1920%)
Mutual labels:  threejs, three-js
three-musketeers
A simple module to introspect, debug and test any THREE.js application.
Stars: ✭ 30 (+500%)
Mutual labels:  threejs, three-js
generative-art
🌈🎨 Generative Art is the idea realized as genetic code of artificial events, as construction of dynamic complex systems able to generate endless variations. This is also a nuxt-module (@luxdamore/nuxt-canvas-sketch) - [three.js, tensorflow.js and gsap are not included].
Stars: ✭ 41 (+720%)
Mutual labels:  threejs, three-js
ng-three-examples
three.js examples in Angular 2
Stars: ✭ 24 (+380%)
Mutual labels:  threejs, three-js
FairyGUI-threejs
A GUI Editor & framework for Three.js
Stars: ✭ 115 (+2200%)
Mutual labels:  threejs, three-js
Hedron
Perform live shows with your three.js creations
Stars: ✭ 372 (+7340%)
Mutual labels:  threejs, three-js

wave-simulator

A graphical 3D simulation of the wave and heat equations.

Demo of waves

Overview

  • Simply uses Euler's method for solving the wave equation for 2 spatial dimensions at a high FPS:
    • The two partial derivatives are approximated for each grid point by the positions of its neighbors
    • From this the sum of partial derivatives (Laplacian) is calculated and used as the point acceleration.
  • The positions of each point are used to create and animate a polygon in Three.js
  • For realistic rendering, a cubemap is used

Controls

Make sure the 3D view is selected (clicked on), then use these keys:

Key Action
Mouse drag Orbit the scene
Up/down Zoom in/out
Space Pause/play
A Create droplet randomly
S Tilt (gets rid of waves)

Initial parameters

  • f_0(x) is initial height function
  • "0 at boundary/stable" specifies that where the function is stable or at the boundaries, the initial function should be overruled to have value 0.
  • f'_0(x) is the initial velocity at each point, which is ignored by the heat equation.
  • s: (x,y)->stable? is a binary function that specifies points that must be held stable (not including the simulation boundaries, which can be held stable with a following option).
  • "Set initial from above definitions" resets the simulation to the initial conditions above. This updates your changes to the setup.

Realtime parameters

You can adjust these as the simulation is running:

  • At the top, you can switch between/realistic normal mode, as well as switch between which equation is being used. "Blend" lerps the velocities together using the factor following the button.
  • Stable boundary indicates whether the rectangular boundary of the simulation should be held still.
  • Finally, you can adjust the period and heat factor, which control how quickly each of the simulations is done. Be careful with your ranges of these as the simulation can become unstable.

Specifying Equations

  • Multiplication must be done explicitly with '' (as in xy NOT xy).
  • Any javascript expression is a valid equation (don't embed this on websites with sensitive data).
  • Special symbols are: sin, cos, tan, asin, acos, atan, sqrt, abs, exp, pow, max, min, pi, and, or, xor, not.
  • The stable function should return true (1) or false (0) for each position.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].