# davinci-newton

Physics Modeling and Engine using Geometric Algebra

## Usage no npm install needed!

``````<script type="module">
import davinciNewton from 'https://cdn.skypack.dev/davinci-newton';
</script>``````

# davinci-newton

A Physics Engine for research and education using Geometric Algebra, and Units of Measure (optional).

The following metrics are supported:

DescriptionAlgebraclass
Euclidean 1DG(1,0)Engine1
Euclidean 2DG(2,0)Engine2
Euclidean 3DG(3,0)Engine3
Spacetime 1DG(1,1)EngineG11
Spacetime 2DG(2,1)EngineG21

# Getting Started

The following code illustrates the basic flow. For working examples see STEMCstudio.

## Constructing the core simulation using the `Engine3` Euclidean 3D or G(3,0) Physics engine.

This example incorporates units of measure.

``````import {
Block3,
Engine3,
Geometric3,
Spring
} from 'davinci-newton'

//
// Constants
//
const e1 = Geometric3.e1
const e2 = Geometric3.e2
const e3 = Geometric3.e3
const kg = Geometric3.kilogram
const m = Geometric3.meter
const s = Geometric3.second

//
// Initialization
//
const sim = new Engine3()
const Δt = 0.01 * s

//
//
const width = 0.5 * m
const height = 0.1 * m
const depth = 0.5 * m
const block1 = new Block3(width, height, depth)
const block2 = new Block3(width, height, depth)

block1.M = 1 * kg
block2.M = 1 * kg

block1.X = -1.0 * e1 * m
block2.X = +1.0 * e1 * m