gravity/sim-options.js
Ladd 68464b0460 Implemented adjustable elasticity and adjustable merge threshold
This parameter represents the percentage of energy that will be
conserved in collisions.
0 -> Perfectly inelastic
1 -> Perfectly elastic
2026-01-31 18:22:56 -06:00

37 lines
1.5 KiB
JavaScript

export const simOptions = {
pauseDuring: {
creation: ['Pause While Creating', 'boolean', true],
selection: ['Pause While Selecting', 'boolean', true],
},
display: {
targetFrameRate: ['Frame Rate', 'number', 60],
velocity: ['Velocity Vectors', 'boolean', true],
acceleration: ['Accel Vectors', 'boolean', true],
traces: ['Path Traces', 'boolean', true],
dashedTraces: ['Dashed', 'boolean', false, {tall: true, showIf: 'display.traces'}],
velocityScale: ['Velocity<br>Vec Scale', 'number', 80, {showIf: 'display.velocity'}],
accelerationScale: ['Accel<br>Vec Scale', 'number', 80, {showIf: 'display.acceleration'}],
zoomVectors: ['Zoom Vectors', 'boolean', true],
panningSpeed: ['Pan<br>Speed', 'number', 0.1],
},
compensate: {
timeScale: ['Time Scale Compensator', 'boolean', false, {wide: true}],
},
param: {
gravity: ['Gravity', 'number', 1],
timeScale: ['Time Scale', 'number', 0.1],
massCreationRate: ['Mass Creation Rate', 'number', 1],
elasticity: ['Elasticity', 'number', 0.7, {min: 0, max: 1}],
mergeThreshold: ['Merge Threshold', 'number', 0.1, {min: 0, max: 1}],
},
debug: {
objectsInfo: ['Objects Info', 'boolean', false],
aliveObjects: ['Alive Only', 'boolean', false],
cursorInfo: ['Cursor Info', 'boolean', false],
frameRate: ['Frame Rate', 'boolean', false],
currentMode: ['Current Mode', 'boolean', false],
panningInfo: ['Panning Info', 'boolean', false],
},
};