Giter Site home page Giter Site logo

nicolasp14 / 3dchladni Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cdinstitute/3dchladni

0.0 0.0 0.0 51 KB

Experimental Suite for Rendering 3D Chladni Patterns.

Home Page: https://3-d-chladni-opal.vercel.app

JavaScript 50.62% Python 21.18% HTML 28.19%

3dchladni's Introduction

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:

3dchladni's People

Contributors

nicolasp14 avatar sachinkishan avatar albertotono avatar betty987 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.