A lightweight JavaScript problem and scenario generator for AP Physics and AP Calculus simulations.
- Generates randomized physics and calculus scenarios across 16 total AP units (8 Physics + 8 Calculus).
- Computes exact step-by-step solutions using mathematical and physical principles.
- Returns structured outputs (prompt, solution, seed) for seamless integration into UI components or test runners.
import PhysEngine from './PhysEngine.js'; import CalcEngine from './CalcEngine.js';
// Generate a random Kinematics problem (Physics Unit 1) const physProblem = PhysEngine.generate("1");
// Generate a random Differentiation problem (Calculus Unit 2) const calcProblem = CalcEngine.generate("2");
console.log(physProblem.prompt); console.log(calcProblem.prompt);
- Unit 0: Math Foundations (Vectors, dot products, component forms)
- Unit 1: Kinematics (Derivatives, freefall, projectile range)
- Unit 2: Dynamics (Inclines, friction, Atwood machines)
- Unit 3: Work & Energy (Spring constants, energy conservation)
- Unit 4: Momentum & COM (Integration, collisions, impulse)
- Unit 5: Rotation (Torque, moment of inertia, rotational work)
- Unit 6: Oscillations (SHM springs, simple pendulums)
- Unit 7: Gravitation (Orbital velocity, gravitational fields)
- Unit 1: Limits & Continuity (Algebraic evaluation, horizontal asymptotes, squeeze theorem)
- Unit 2: Differentiation - Fundamental Rules (Power, product, quotient, trigonometric derivatives)
- Unit 3: Differentiation - Composite, Implicit & Inverse (Chain rule, implicit differentiation, inverse functions)
- Unit 4: Contextual Applications of Differentiation (Rates of change, related rates, linear approximation)
- Unit 5: Analytical Applications of Differentiation (MVT, extrema, concavity, optimization)
- Unit 6: Integration & Accumulation of Change (Riemann sums, indefinite/definite integrals, u-substitution)
- Unit 7: Differential Equations (Slope fields, separation of variables, exponential growth/decay)
- Unit 8: Applications of Integration (Area between curves, volume by disc/washer method, arc length)
- Clone the repo: git clone https://github.com/Ta709/phys-core.git
- Run locally in Node or import directly into your frontend build pipeline.
MIT