<commit_before>nphysics
========
**nphysics** is a n-dimensional physics engine for games and animations.

Its most distinctive feature is its genericity wrt the simulation
dimension. That means you can use it for both 2-dimensional physics and
3-dimensional physics. Higher dimensions should be possible but I never tested
(it you happen to have a 4-dimensional renderer let me know)!

## Why another physics engine?
There are a lot of physics engine out there.
However having a physics engine written in rust is much more fun than writing
bindings and has several adventages:
- it shows that rust is suitable for soft real-time applications
- it shows how well rust behaves with highly generic code
- it shows that there is no need to write one physics engine per dimension:
  genericity wrt the dimension is possible
- in a not-that-near future, C++ will die of ugglyness. Then, people will
  search for a physics engine and **nphysics** will be there, proudly
  exhibiting its _rusty_ sexyness.

## Compilation
You will need the last rust compiler from the incomming branch.
I pull the compiler and fix my code almost every days. If you encounter
problems, make sure you have the last version.

The simplest way to build **nphysics** and all its dependencies is to do a
recursive clone:


    git clone --recursive git://github.com/sebcrozet/nphysics.git
    cd nphysics<commit_msg>Add link to ndemo on readme.<commit_after>nphysics
========
**nphysics** is a n-dimensional physics engine for games and animations.

Its most distinctive feature is its genericity wrt the simulation
dimension. That means you can use it for both 2-dimensional physics and
3-dimensional physics. Higher dimensions should be possible but I never tested
(it you happen to have a 4-dimensional renderer let me know)!

See the **ndemo** project (git://github.com/sebcrozet/ndemo.git) for
demonstrations.

## Why another physics engine?
There are a lot of physics engine out there.
However having a physics engine written in rust is much more fun than writing
bindings and has several adventages:
- it shows that rust is suitable for soft real-time applications
- it shows how well rust behaves with highly generic code
- it shows that there is no need to write one physics engine per dimension:
  genericity wrt the dimension is possible
- in a not-that-near future, C++ will die of ugglyness. Then, people will
  search for a physics engine and **nphysics** will be there, proudly
  exhibiting its _rusty_ sexyness.

## Compilation
You will need the last rust compiler from the incomming branch.
I pull the compiler and fix my code almost every days. If you encounter
problems, make sure you have the last version.

The simplest way to build **nphysics** and all its dependencies is to do a
recursive clone:


    git clone --recursive git://github.com/sebcrozet/nphysics.git
    cd nphysics
{'fraction_non_alphanumeric': 0.05325443786982249, 'fraction_numerical': 0.002088409328228333, 'mean_word_length': 4.225454545454546, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3121692', 'n_tokens_mistral': 772, 'n_tokens_neox': 728, 'n_words': 431}