Open Source

Contribute to Physics

Help us build the most beautiful interactive physics library. Whether it's a new concept, a bug fix, or a better explanation, your contribution matters.

Find an Issue

How to Contribute

The most common way to contribute is by adding a new interactive concept page. Follow these steps to get started:

STEP 01

Fork & Setup

Clone the repository and start a local server. No complex build tools or bundlers are required—it's just pure HTML/JS.

git clone https://github.com/CasberryIndia/Physics-Notebook.git
cd Physics-Notebook
python3 -m http.server 8000  # or npx http-server
STEP 02

Create a Concept

Create a new file in Concepts/ (e.g., doppler-effect.html). Use our structure:

  • • Use standard HTML5 structure with our head section boilerplate.
  • • Implement 3 sections: Theory, Application, and Real-world Context.
  • • Write a visual class extending BaseVisual for the canvas animation.
STEP 03

Register Module

Add your new concept to the DATA array within index.html so it appears on the home page grid.

{
    id: 'doppler',
    title: 'Doppler Effect',
    domain: 'Waves',
    desc: 'Change in frequency based on relative motion.',
    href: 'Concepts/doppler-effect.html',
    type: 'doppler' // You'll adding a new visual class in index.html for the card preview
}

Quality Checklist

Before submitting your Pull Request, ensure your contribution meets these standards:

HTML structure follows the CONCEPT_PATTERN.md template.
Visualizations are interactive (sliders/inputs) and run smoothly at 60fps.
Equations are rendered correctly using MathJax (if applicable).
Design works perfectly in both Light and Dark modes.
Page is responsive and layouts adapt to mobile devices.
Code is clean, commented, and properly indented.

Ready to submit your changes?

Make a Pull Request