ITPub博客

首页 > 数据库 > 数据库开发技术 > [大家的项目]Rust + WASM + Vite 实践神经网络 & 遗传算法

[大家的项目]Rust + WASM + Vite 实践神经网络 & 遗传算法

原创 数据库开发技术 作者:Rust语言中文社区 时间:2023-02-18 23:48:05 0 删除 编辑

在线体验(可能需要科学上网)

https://osmos.jerryshell.eu.org

开源仓库

https://github.com/jerryshell/osmos

简单介绍

大的细胞会吃掉小的细胞,一定时间后系统会自动进化下一代,细胞越大它的移动速度就越慢,但是它的 DNA 能遗传到下一代的机率就越大。

这些细胞一开始几乎都是乱跑,进化 100 代之后(🧬 Epoch: 100),大概就能出现 主动捕食 和 躲避危险 的趋势。

这个项目的基本思路是使用 Rust 驱动数据,然后使用 JavaScript 将数据渲染到 Canvas 中。

这个项目只用到了 rand, nalgebra, serde, wasm_bindgen 这几个 crate,如果你刚看完 Rust Book,但是没有项目练手,可以试试这个!

项目结构简介

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 # 碰撞系统
│ ├── movement.rs # 移动系统
│ ├── network.rs # 神经网络系统
│ └── sensor.rs # 感知器系统
├── osmos-wasm # 将模拟器编译为 WASM,代理模式
└── osmos-web # Web UI,通过导入 WASM 启动模拟器,并将模拟器的数据渲染到 Canvas 中


原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-06-11

  • 博文量
    1769
  • 访问量
    725909