Skip to content

CDInstitute/3DChladni

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

image

Website

https://chladni.onrender.com/

How to use: Change the values on the sliders, press "Update Pattern". Wait a few seconds and a new pattern will be rendered.

Suggestion: Run the software locally for a smoother and faster usage.

Experimental Suite for Rendering 3D Chladni Patterns.

In Skrodzki et al. 2016 [1], the authors described the generation of 3D Chladni patterns. These are visually striking and find rich applications, e.g., in architecture or instrument design. While the paper shows several renderings, no open-source implementation is available. The project aims to create a web application that allows users to render and export their Chladni patterns. This will involve, e.g., handling implicit surface descriptions and the marching cubes algorithm. Ideally, the tool will enable researchers to investigate the relationship between Chladnis figures and eigenfunctions and help in answering the question of whether there are two different 3D shapes with the same Chladni figures (along the lines of the “Hear the shape of a drum” paper for 2D shapes).

Prerequisites: No strict prerequisites, knowledge of 3D web development / JavaScript / HTML5 is a bonus.

How to setup website locally (for editing and contribution)

  • cd ./chladni
  • (node.js installation) (brew install node (for Mac))
  • npm install (installs dependencies of node.js)
  • (conda installation)
  • conda env create -f environment.yml
  • conda activate chladni

How to run website locally

ShaderToy Implementation

In case you would like to render the Chladni surface in ShaderToy, an implementation can be found here based on an existing marching cubes implementation[4].

To apply your custom variable values to the shadertoy, perform the following:

Screen Resolution Adjustments

Change the resolution according to your screen resolution in the "Common" tab of the shader program. You can see your viewer resolution in shadertoy. If you are using fullscreen to view the shader, instead put in your actual screen resolution. So for a viewer of resolution 768 x 432, the resolution variables will be typed as follows:

image

These changes ensure you view the function in the bounds of (-1,-1,-1) to (1,1,1)

Chladni Figure Adjustments

To change variables for the resulting Chladni figure, go to "Buffer B" tab of the shader program.

In the tab, the map function performs the calculation of the value of the pattern at a point in space. Here you can change the following variables to map your output in the webviewer.

image

To change boundary condition, change the value of type to either 0.0 for Dirichlet boundary condition or 1.0 for Neumann boundary condition for the function.

image

Reference Code and Papers:

Gratitude

This project was made during the 6th week of the MIT SGI program in 2024 by SGI Fellows Nicolas Pigadas, Sachin Arvind Kishan and Bethlehem Tassew under the mentorship of Martin Skrodzki and teaching assistance of Alberto Tono. We are thankful to our mentors and the program for this opportunity.

About

Experimental Suite for Rendering 3D Chladni Patterns.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •