Interactive Computational Physics Simulator & Educational Workbench
Developed by Shamsuddin Piash | Department of Mechanical Engineering, Bangladesh University of Engineering and Technology (BUET).
Interactive physics workbench for force-displacement vector decomposition W = F·s·cosθ, rotational torque work, lawn roller push vs pull, and variable force integrals.
Designed from first-principles physics and numerical mechanics, this simulation bridges textbook analytical theory and real-time computation. It enables students, researchers, and competitive engineering candidates to visualize dynamic force interactions, observe parametric trends, and verify conservation laws interactively.
-
Constant Force Work:
$$W = \vec{F} \cdot \vec{s} = F \cdot s \cdot \cos\theta$$ -
$\theta = 0^\circ \implies W = +F s$ (Maximum positive work) -
$\theta = 90^\circ \implies W = 0$ (Zero work / centripetal force) -
$\theta = 180^\circ \implies W = -F s$ (Opposing / frictional work)
-
-
Lawn Roller Push vs. Pull Mechanics:
-
Pulling: Normal force
$N_{pull} = m g - F \sin\theta \implies f_{friction} = \mu(m g - F \sin\theta)$ (Lighter) -
Pushing: Normal force
$N_{push} = m g + F \sin\theta \implies f_{friction} = \mu(m g + F \sin\theta)$ (Heavier)
-
Pulling: Normal force
-
Variable Force Numerical Integration:
$$W = \int_{x_1}^{x_2} F(x),dx$$ Evaluated via Simpson's$1/3$ numerical quadrature for nonlinear spring$F(x) = k x + \alpha x^3$ .
- Interactive Vector Angle Dial: Rotate force angle $ heta \in [0^\circ, 360^\circ]$ to observe cosine work scaling.
- Push vs Pull Real-Time Demonstrator: Visualizes normal force variations and frictional resistance on a lawn roller.
-
Force-Displacement Integral Graph (
$F$ -$x$): Shaded area under the curve representing accumulated mechanical work. -
Rotational Torque Workbench: Calculates
$W = au heta$ for torque applied over angular displacement.
This repository adheres strictly to professional security standards, privacy guidelines, and academic integrity policies:
- Proprietary & Institutional Protection: Underlying academic curricula, institutional questions, and confidential research data are sanitized and protected under institutional agreements.
- Environment & Secrets Hygiene: No private keys, passwords, or personal credentials are hardcoded. API tokens (e.g., Gemini AI or cloud compute) must be supplied via local
.envfiles or secure CI/CD secrets. - Vulnerability Reporting: Please refer to SECURITY.md for instructions on confidential disclosure.
.
├── src/
│ ├── components/ # UI panels, canvas renderer, sliders & controls
│ ├── utils/ # Physics solvers, RK4 ODE integration, vector math
│ ├── types.ts # Strongly typed simulation interfaces
│ ├── App.tsx # Primary application workbench
│ └── main.tsx # Application root
├── public/ # Static assets & icons
├── metadata.json # Simulator metadata & capabilities
├── package.json # Dependencies & build scripts
├── tsconfig.json # TypeScript compiler configuration
├── vite.config.ts # Vite bundle & dev server configuration
├── SECURITY.md # Confidentiality & vulnerability disclosure policy
└── LICENSE # MIT License
- Node.js:
v18.0.0or higher - npm or bun / pnpm
# 1. Clone the repository
git clone https://github.com/piashoverflow/Workdone.git
cd Workdone
# 2. Install dependencies
npm install
# 3. Configure environment variables (if applicable)
cp .env.example .env
# 4. Launch the local development server
npm run devVisit http://localhost:3000 in your browser to interact with the simulation.
npm run build
npm run previewShamsuddin Piash
B.Sc. in Mechanical Engineering (Graduated March 2025)
Bangladesh University of Engineering and Technology (BUET)
Dhaka, Bangladesh
- Portfolio Website: piashoverflow.github.io
- GitHub: @piashoverflow
- LinkedIn: linkedin.com/in/shamsuddin-piash
- Email: mohammadshamsuddinpiash0722@gmail.com
This project is licensed under the MIT License — see the LICENSE file for complete details.