Installation
npm install @egthiaia/simulations
Add the package to your project or use the UMD build available at /cdn.egthiaia.tsas/simulations.min.js
Getting Started
import { Simulation, Gravity, CanvasRenderer } from '@egthiaia/simulations'; const sim = new Simulation({ container: '#canvas', width: 800, height: 600 }); sim.addForce(new Gravity(9.81)); sim.addRenderer(new CanvasRenderer(sim)); sim.start();
This initializes a basic simulation with gravity and canvas rendering.
API Reference
Simulation Class
constructor(options: { container: string | HTMLElement, width?: number, height?: number }) addForce(force: Force): void addRenderer(renderer: Renderer): void addEntity(entity: Entity): void start(): void pause(): void reset(): void
Force Classes
Gravity(acceleration: number)
- Applies constant downward forceWind(power: number)
- Applies horizontal force vectorFriction(coefficient: number)
- Reduces velocity based on contact
Renderer Classes
CanvasRenderer(simulation)
- Uses HTML5 Canvas for 2D renderingWebGLRenderer(simulation)
- GPU-accelerated 3D renderingDebugRenderer(simulation)
- Visualizes forces and vectors
Examples
Physics Sandbox
Real-time gravity simulation with adjustable parameters:
const gravitySlider = document.getElementById('gravity'); sim.addForce(new Gravity(gravitySlider.value));
Neural Network Visualization
AI training simulation with interactive feedback:
const network = new NeuralNetwork(3, [4, 2]); sim.addEntity(network); network.train(dataSet);
Development
Our API is actively evolving. You can contribute by:
- Submitting feature suggestions via GitHub Issues
- Proposing API enhancements in our Discord
- Reviewing pull requests and providing feedback