Jerryshell Osmos Save

Rust + WASM + 神经网络 + 遗传算法

Project README

Osmos

osmos.jerryshell.eu.org

Rust + WASM + Vite + 神经网络 + 遗传算法

Bilibili 视频:https://www.bilibili.com/video/BV1vj411A7k2

如何运行

第 0 步,安装 wasm-pack

https://rustwasm.github.io/wasm-pack

第 1 步,编译 osmos-wasm

cd osmos-wasm
wasm-pack build --out-dir ../osmos-web/osmos-wasm

第 2 步,进入 osmos-web 安装依赖并运行

cd osmos-web
yarn
yarn dev

项目结构简介

osmos
├── osmos-core # 核心数据结构
├── osmos-nn   # 神经网络
├── osmos-sim  # 进化模拟器,使用类似 ECS 的模式驱动全局数据
│   └── src
│       ├── ga # 遗传算法
│       │   ├── crossover.rs # 交叉
│       │   ├── evolve.rs    # 进化
│       │   ├── fitness.rs   # 适应度
│       │   ├── gene.rs      # 基因
│       │   ├── mutation.rs  # 变异
│       │   └── selection.rs # 选择
│       └── system # ECS 子系统
│           ├── collision.rs # 碰撞系统
│           ├── epoch.rs     # 迭代系统
│           ├── movement.rs  # 移动系统
│           ├── network.rs   # 神经网络系统
│           └── sensor.rs    # 感知器系统
├── osmos-wasm # 将模拟器编译为 WASM,代理模式
└── osmos-web  # Web UI,通过导入 WASM 启动模拟器,并将模拟器的数据渲染到 Canvas 中

Vite WASM

  1. Install vite-plugin-wasm & vite-plugin-top-level-await
yarn add -D vite-plugin-wasm vite-plugin-top-level-await 
  1. Edit vite.config.js
import { defineConfig } from 'vite'
import wasm from 'vite-plugin-wasm'
import topLevelAwait from 'vite-plugin-top-level-await'

export default defineConfig({
    plugins: [
        wasm(),
        topLevelAwait(),
    ]
})

⚠️ Rust WASM Warning

Don't use wee_alloc in production code.

License

GNU Affero General Public License v3.0

Open Source Agenda is not affiliated with "Jerryshell Osmos" Project. README Source: jerryshell/osmos
Stars
56
Open Issues
0
Last Commit
1 month ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating