/ newtonian Public

Simple physics engine, only gravity aware, written in ruby.

# tlehman/newtonian

Switch branches/tags
Nothing to show

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

## Files

Failed to load latest commit information.
Type
Name
Commit time

# Newtonian

Newtonian physics gives a way to predict the future state of a system of massive objects in a Euclidean space. This gem provides a library of classes such as Point, Vector, Force. This gem enables a system built from these classes to be evolved forward in time according to Newton's laws of motion.

Note: all bold quantities are vectors. SI units are assumed everywhere, here's a brief list in case you don't remember all the SI units:

• Time is measured in seconds (s)
• Length is measured in meters (m)
• Mass is measured in kilograms (kg)

There are more, but none are relevant to the newtonian library, it only deals with space, time and mass.

The unit for force is sometimes abbreviated (N), as Newtons, but it is defined in terms of kilograms, meters and seconds.

## Newton's laws of motion

1. An object either remains at rest or continues to move at a constant velocity unless acted upon by a force.

2. The vector sum of external forces F acting on an object is equal to the object's mass m times the acceleration vector a.

3. When one body exerts a force on another body, the other body exerts an equal and opposite force on the original body.

The second law can be summarized as:

### F = m a

The third law can be summarized as:

## Conservation of momentum

Newton derived the conservation of momentum from his three laws, but later developments in physics, such as electromagnetism and quantum mechanics show that conservation of momentum is actually the more fundamental principle, so I will state it here axiomatically.

Momentum is usually denoted with a p, and it is defines as the product of an objects mass and velocity:

p = mv

Newton's second and third laws can also be summarized as

F = (d/dt)p

Where (d/dt) means the "rate of change with respect to time". If you are not familiar with calculus, this is called a derivative.

## Newton's law of universal gravitation

Given two objects with masses m1 and m2, the force of gravity on object two from object one is:

F21 = (Gm1m2/r2)21

Where r = ||r21|| (the norm (length) of the vector from object 2 to object 1), and

21 is a vector in the direction of r21, but with a magnitude (norm) of 1.

And G is the gravitational constant: 6.673×10−11 N (m/kg)2 ## Run example simulation

Just type

``````\$ make
``````

And then open your browser to http://localhost:8000

## Installation

`gem 'newtonian'`

And then execute:

``````\$ bundle
``````

Or install it yourself as:

``````\$ gem install newtonian
``````

## Usage

TODO: Write usage instructions here

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to rubygems.org.

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/tlehman/newtonian.

The gem is available as open source under the terms of the MIT License.

Simple physics engine, only gravity aware, written in ruby.

## Releases

No releases published

## Packages 0

No packages published