Skip to content

ahmedkerouat/quantum-effects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Quantum Effects

Table of content

About the project

This project aims to provide an interactive and visually compelling representation of various quantum phenomena. The primary goal of this visualization project is to provide an accessible and intuitive way for users to engage with and comprehend complex quantum principles rather than to mimic the true characteristics of quantum particles.

Getting Started

Dependencies

Installation

> git clone https://github.com/ahmedkerouat/quantum-effects.git
> cd quantum-effects
> mkdir build
> cd build
> cmake ..
> make
> ./quantum-effects

Structure

The project consists of multiple header files, each providing specific functionalities. Here's an overview of the key components:

  • quantumRepresentation.h : The header file offers OpenGL functions for rendering Quantum Effects. These functions utilize shader programs, VAOs, sphere indices, time, and colors to achieve animated visual outcomes.

  • sphere.h: This header file contains the Sphere class, which is used for rendering paritcles. It allows customization of the number of vertices and triangles that make up a sphere.

  • grid.h : This header file contains the Grid class, which is used for rendering the grid. It returns vertices and indices based width, height, rows, and columns.

  • shader.h : The shader.h file provides functions for loading and compiling OpenGL shaders and creating shader programs. For instance, it includes a utility function, loadShaderSource, to load shader source code from external files.

  • shader_config.h: This header includes the configuration data for fragment & vertex shaders.

  • camera.h: The Camera class defined in this header is responsible for controlling the view and perspective within the simulations. It manages user input for camera movements.

Usage

You can control various aspects of the simulations through the user interface.

  • Render Functions : Choose between rendering a simple particle, or quantum representations of wave-particle duality, tunneling, entaglement, superposition, uncertainty, and spin.

  • Grid Controls : Adjust grid visibility, color, rotation angle, size, and translation.

  • Function specific Controls : Adjust the diverse parameters for each phenomenon including but not limited to colors and animation durations.

Controls

Within the simulations, you can control diverse camera parameters :

  • Right Mouse Button : Controls the camera's rotation.

  • Left Mouse Button : Controls the camera's position.

  • Scroll: Zoom in and out of the simulation.

  • Space button : Resets camera position to default (you could also use the reset camera button in the menu).

On the menu Ctrl + Lmb to change precisely a simulation parameter using the slider

Screenshots

1 2 3

Contributing

Your contributions are greatly appreciated! If you have any suggestions to enhance the project, please feel free to create a pull request. Alternatively, you can open an issue to discuss your ideas. Don't forget to give a star ⭐️ – it's like a virtual high-five! Thank you for your valuable input!

License

Project is licensed under the MIT LICENSE