All Projects → mi-creative → MIMS

mi-creative / MIMS

Licence: GPL-3.0 license
PyQt application for creating mass interaction models and compiling them into Faust dsp code, or ~gen objects (for Max/MSP)

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to MIMS

Pycbc
Core package to analyze gravitational-wave data, find signals, and study their parameters. This package was used in the first direct detection of gravitational waves (GW150914), and is used in the ongoing analysis of LIGO/Virgo data.
Stars: ✭ 177 (+704.55%)
Mutual labels:  physics
P2.js
JavaScript 2D physics library
Stars: ✭ 2,367 (+10659.09%)
Mutual labels:  physics
Particulate Medusae
Soft body jellyfish simulation.
Stars: ✭ 239 (+986.36%)
Mutual labels:  physics
Feyncalc
Mathematica package for algebraic calculations in elementary particle physics.
Stars: ✭ 184 (+736.36%)
Mutual labels:  physics
Dustracing2d
Dust Racing 2D is a traditional top-down car racing game including a level editor.
Stars: ✭ 199 (+804.55%)
Mutual labels:  physics
Mathutilities
A collection of some of the neat math and physics tricks that I've collected over the last few years.
Stars: ✭ 2,815 (+12695.45%)
Mutual labels:  physics
Classic Pool Game
Classic 8 Ball pool game written in JavaScript
Stars: ✭ 177 (+704.55%)
Mutual labels:  physics
Measurements.jl
Error propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration.
Stars: ✭ 248 (+1027.27%)
Mutual labels:  physics
Insect
High precision scientific calculator with support for physical units
Stars: ✭ 2,469 (+11122.73%)
Mutual labels:  physics
Pydy
Multibody dynamics tool kit.
Stars: ✭ 232 (+954.55%)
Mutual labels:  physics
Chemlab
The chemistry library you were waiting for
Stars: ✭ 187 (+750%)
Mutual labels:  physics
Itensors.jl
A Julia library for efficient tensor computations and tensor network calculations
Stars: ✭ 199 (+804.55%)
Mutual labels:  physics
Math Science Video Lectures
List of Science courses with video lectures
Stars: ✭ 219 (+895.45%)
Mutual labels:  physics
Salva
2 and 3-dimensional fluid simulation library in Rust.
Stars: ✭ 182 (+727.27%)
Mutual labels:  physics
Haskanoid
A breakout game in Haskell using SDL and FRP, with Wiimote and Kinect support.
Stars: ✭ 242 (+1000%)
Mutual labels:  physics
Springy facebook rebound
Springy makes Android Property animation easy to use.
Stars: ✭ 176 (+700%)
Mutual labels:  physics
Bulletsharp
.NET wrapper for the Bullet physics library
Stars: ✭ 208 (+845.45%)
Mutual labels:  physics
ue4-uitween
Unreal 4 UMG UI tweening plugin in C++
Stars: ✭ 178 (+709.09%)
Mutual labels:  user-interface
Artiq
A leading-edge control system for quantum information experiments
Stars: ✭ 245 (+1013.64%)
Mutual labels:  physics
Hamiltonian Nn
Code for our paper "Hamiltonian Neural Networks"
Stars: ✭ 229 (+940.91%)
Mutual labels:  physics

Note: If you're looking to use a model scripter for mi-gen~ or Faust, we recommend using the a newer one directly integrated into mi-gen~ using NodeJS: head over to the mi-gen repo for more information: https://github.com/mi-creative/mi-gen.

MIMS

PyQt application for creating mass interaction models and compiling them into FAUST dsp code or ~gen objects (for Max/MSP)

1. Getting Started

Prerequisites

You will need a recent version of Python 3, with the PyQt5 and numpy packages (the easiest way to install these is probably through pip).

Installing

Clone or download the github repository. If you have all the necessary Python packages, you should just be able to run MIMS_main.py.

If you are considering development, any Python IDE (such as Pycharm) should do the trick.

Creation of one-file executable apps for Windows/Mac/Linux is ongoing (for windows, run pyinstaller MIMS.spec --clean from the base of the repo)

2. Features

MIMS allows to describe one-dimensional mass-interaction models, and generade DSP code for the FAUST and Max/MSP environments. Model files are made of physical elements, parameters, and input/outputs.

For more on mass-interaction models generated with MIMS in Max/MSP, see the mi_gen~ github repo.

For more on mass-interaction models generated with MIMS in Faust, see the mi_faust github repo.

3. Building Models

Structure

Below is a basic model description in MIMS

# Define global parameter attributes
@m_K param 0.1
@m_Z param 0.001

@nlK param 0.05
@nlScale param 0.01

# Create material points
@m_s0 ground 0.
@m_m0 mass 1. 0. 0.
@m_m1 mass 1. 0. 0.
@m_m2 mass 1. 0. 0.

# Create and connect interaction modules
@m_r0 spring @m_s0 @m_m0 0.05 0.01
@m_r1 spring @m_m0 @m_m1 m_K m_Z
@m_r2 spring @m_m1 @m_m2 m_K m_Z
@m_r2 spring @m_m2 @m_m0 m_K m_Z

# Inputs and outputs
@in1 posInput 0.
@out1 posOutput @m_m2

# Add plucking interaction
@pick nlPluck @in1 @m_m1 nlK nlScale 

Elements

Module description Arguments
param labelled parameter initial value
audioParam audio-rate labelled parameter initial value
mass punctual mass inertia(M), initialPos, delayedPos
massG punctual mass (with gravity) inertia(M), gravity(G), initialPos, delayedPos
osc harmonic oscillator inertia(M), stiffness(K), damping(Z), initialPos, delayedPos
spring linear spring stiffness(K), optional:damping(Z)
springDamper linear dampened spring stiffness(K), damping(Z)
damper linear damper damping(Z)
nlspring (or nlSpring2) non-linear dampened spring (parabolic term) stiffness(K), NL stiffness(Q), damping(Z)
nlspring3 non-linear dampened spring (cubic term) stiffness(K), NL stiffness(Q), damping(Z)
nlPluck piecewise linear pluck interaction stiffness-coef(K), scale
nlBow piecewise linear bowing interaction damping-coef(Z), scale
posInput position input initialPos
frcInput force input mass-element to apply force to
posOutput position output mass-element to observe
frcOutput force output mass-element to observe

Built With

Library built with PyCharm and PyQt5.

Contributing

We'd be happy to include more people to the development repository, so drop us a line if you would like to contribute to the development of the library.

Authors

This project was developped by James Leonard and Jérôme Villeneuve.

For more info, see: www.mi-creative.eu

License

This project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details

Acknowledgments

This work implements mass-interaction physical modelling, a concept originally developped at ACROE - and now widely used in sound synthesis, haptic interaction and visual creation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].