-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c5eb6e8
commit 3147eda
Showing
15 changed files
with
418 additions
and
115 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,55 @@ | ||
# MNN | ||
# MNN.jl | ||
|
||
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://alexander-reimer.github.io/Simulation-of-MNNs/dev/) | ||
[![Build Status](https://github.com/alexander-reimer/Simulation-of-MNNs/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/alexander-reimer/Simulation-of-MNNs/actions/workflows/CI.yml?query=branch%3Amain) | ||
[![Coverage](https://codecov.io/gh/alexander-reimer/Simulation-of-MNNs/branch/main/graph/badge.svg)](https://codecov.io/gh/alexander-reimer/Simulation-of-MNNs) | ||
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle) | ||
|
||
The German papers describing this project can be found in the [paper | ||
branch](https://github.com/Alexander-Reimer/Simulation-of-MNNs/tree/paper). | ||
|
||
## Summary (German) | ||
|
||
Wir wollen uns mit dem neuen, vergleichsweise wenig erforschtem Bereich der | ||
Mechanical Neural Networks, kurz MNNs, beschäftigen. Während die bisherige | ||
Forschung sich auf die technische, physische Implementation dieser Netzwerke | ||
fokussiert hat, wollen wir das Trainingsverfahren optimieren. Dazu wollen wir | ||
die bisher verwendeten Algorithmen (evolutionäres Lernen und Pattern Search) | ||
selbst implementieren und genauer sowie mit neuen Parametern auszuprobieren und | ||
zu vergleichen. Außerdem wollen wir versuchen, eine Methode für Backpropagation | ||
bei MNNs zu entwickeln und implementieren, da eine solche unserer Recherche nach | ||
noch nicht ausprobiert wurde. | ||
|
||
Dafür werden wir uns jedoch auf die Anwendung dieser Algorithmen in einer | ||
Simulation beschränken. Die Ergebnisse sollten dennoch einen guten Startpunkt | ||
für reale MNNs bieten. | ||
|
||
## Usage | ||
|
||
### NixOS | ||
|
||
When using NixOS, activating the development shell is necessary to make GLMakie work: | ||
|
||
```bash | ||
cd /path/to/this/project | ||
nix-shell . | ||
``` | ||
We (Matteo Friedrich and Alexander Reimer) are currently participating in Jugend | ||
forscht 2024 (a German youth science competition). For our project, we needed a | ||
library capable of simulating, optimizing and visualizing Mechanical Neural | ||
Networks (MNNs). Since we couldn't find one, we decided to develop and publish | ||
our own: MNN.jl. The source code is available in our [GitHub | ||
repository](https://github.com/Alexander-Reimer/Simulation-of-MNNs). | ||
|
||
While this repository is hosted on the profile of Alexander Reimer | ||
(alexander.reimer2357@gmail.com), [Matteo | ||
Friedrich](https://github.com/MatteoFriedrich) (matteo.r.friedrich@gmail.com) | ||
has equally contributed to this project. | ||
|
||
## What Are MNNs? | ||
|
||
Mechanical Neural Networks (MNNs for short) are networks made of mass points | ||
connected by springs with variable spring constants. With a large enough | ||
network, a MNN can be trained to exhibit almost any behaviour desired by setting | ||
the spring constants appropiately. Importantly, they can be trained with | ||
multiple behaviours at once to exhibit different reactions depending on the | ||
"inputs" (forces acting on them). This makes them potentially useful for | ||
airplane wings which adjust theirs shape depending on the force and angle of the | ||
wind, body armor absorbing shock, better seat cushions or better wind turbine | ||
blades. Besides these examples of shape morphing behaviours, adjusting the | ||
resonance curves of MNNs is also possible and opens the door for applications | ||
like earthquake safe buildings, better music instruments, objects like walls | ||
capable of strengthening or weakening acoustic signals at will. | ||
|
||
We based our research and knowledge of MNNs on the 2022 paper ["Mechanical | ||
neural networks: Architected materials that learn | ||
behaviors"](https://www.science.org/doi/10.1126/scirobotics.abq7278) by Ryan H. | ||
Lee, Erwin A. B. Mulder and Jonathan B. Hopkins. They are, as far as we are | ||
aware, the first to describe such Mechanical Neural Networks. Ntwork. | ||
|
||
## Features of this library | ||
|
||
- Simulation of MNNs | ||
- Evaluating the performance of MNNs for shape morphing and resonance behaviour | ||
with MSE | ||
- Optimizing the spring constants with Partial Pattern Search or an evolutionary | ||
algorithm | ||
|
||
## Our Research | ||
|
||
For detailed papers (only in German), see the [paper branch on | ||
GitHub](https://github.com/Alexander-Reimer/Simulation-of-MNNs/tree/paper). The | ||
most recent one available is from our participation at the state-level | ||
competition in Lower Saxony: | ||
[paper.pdf](https://github.com/Alexander-Reimer/Simulation-of-MNNs/blob/paper/2024/JuFo_Niedersachsen/main.pdf) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
# using https://github.com/tlienart/LiveServer.jl/#serve-docs | ||
julia --project=docs -e 'using MNN, LiveServer; servedocs()' | ||
julia --project=docs -ie 'using Revise, MNN, LiveServer; servedocs()' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Internal Documentation | ||
|
||
Documentation for the internals of `MNN.jl`. These are subject to change. | ||
|
||
## Contents | ||
|
||
```@contents | ||
Pages = ["internals.md"] | ||
Depth = 2:2 | ||
``` | ||
|
||
## Index | ||
|
||
```@index | ||
Pages = ["internals.md"] | ||
``` | ||
|
||
## Public Interface | ||
|
||
```@autodocs | ||
Modules = [MNN] | ||
Public = false | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Public Documentation | ||
|
||
Documentation for `MNN.jl`'s public interface. | ||
|
||
See the Internals section of the manual for internal package docs covering all submodules. | ||
|
||
## Contents | ||
|
||
```@contents | ||
Pages = ["public.md"] | ||
Depth = 2:2 | ||
``` | ||
|
||
## Index | ||
|
||
```@index | ||
Pages = ["public.md"] | ||
``` | ||
|
||
## Public Interface | ||
|
||
```@autodocs | ||
Modules = [MNN] | ||
Private = false | ||
``` |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Adding Your Own Simulation |
Oops, something went wrong.