Feezy is an open-source, bilingual (English & Romanian) interactive physics learning platform designed for high school students preparing for the Baccalaureate exam.
The platform combines theoretical lessons, real-time interactive physics simulations, data charts, and gamified practice quests with detailed explanations to make learning physics intuitive and engaging.
- Bilingual Support (EN / RO): Toggle languages instantly on any page. All lessons, equations, questions, and simulation parameters update automatically.
-
Interactive Simulations:
-
Inclined Plane: Adjust wedge angle, mass, friction coefficient, and gravity to watch force vectors (
$F_g$ ,$F_N$ ,$F_f$ ,$F_{net}$ ) update dynamically and animate block motion. - Thermodynamic Gas Piston: Simulate Isobaric, Isochoric, Isothermal, and Adiabatic processes. Bouncing gas particles in the cylinder change speed based on Temperature, while a state point traces the process in a pressure-volume indicator.
- Electric DC Circuit: Build series or parallel circuits, adjust voltage and resistor parameters, toggle the circuit switch, and visualize electron flow speed corresponding to total current.
-
Inclined Plane: Adjust wedge angle, mass, friction coefficient, and gravity to watch force vectors (
- Practice & Quest Mode: Solve conceptual multiple-choice and numerical questions for each chapter. Earn XP points, level up, track completed topics, and view KaTeX-rendered mathematical explanations upon checking answers.
- Offline and Static Access: Runs entirely in the browser using static pages and local storage progress tracking. Easy to build, deploy, and host for free on GitHub Pages.
- Rich Premium Design: Glassmorphic elements, modern gradients, dark and light mode theme integration, and smooth interactive animations.
- Framework: React + Vite
- Language: TypeScript
- UI Components: Ant Design
- Math Formats: KaTeX (via
react-katex) - Plots & Charts: Recharts
- Internationalization: i18next
Ensure you have Node.js installed (v18 or higher is recommended).
- Clone the repository:
git clone https://github.com/uselessbits/feezy.git cd feezy - Install the package dependencies:
npm install
Run the local development server:
npm run devOpen http://localhost:5173 in your browser to view the application.
To compile TypeScript and bundle the static assets for production deployment:
npm run buildThe output files will be built inside the dist/ directory.
To deploy the build to GitHub Pages:
npm run deployWe welcome content and simulation contributions! Please read our CONTRIBUTING.md to understand how to add chapters, questions, and custom simulation blocks.
This project is licensed under the MIT License - see the LICENSE file for details.