3 个不稳定版本
使用旧的 Rust 2015
0.3.0 | 2019 年 9 月 11 日 |
---|---|
0.2.1 | 2018 年 9 月 28 日 |
0.2.0 | 2018 年 9 月 15 日 |
#394 in 图形 API
62KB
1.5K SLoC
Foundry
使用 Vulkan 加速的细胞自动机库。
它是一个旨在操纵生命细胞自动机网格的库。目前它支持
- 环面和可调整大小的网格
- 加载和保存包含网格数据的文件
- 向前推进网格的世代(如果它是可调整大小的网格,它将确保模式始终位于网格的中心)
该库的目标
- 支持网格操作的分布式和并行计算(GPU 和网络)。
- 使用机器学习进行模式分析。
关于使用的文件格式
目前,Foundry 使用两种内部文件格式:可调整大小的生命和环面生命。
可调整大小的生命
此文件格式类似于 Life 1.06 格式
- "#可调整大小的生命" 后面跟着可选的描述行,以 "#D" 开头。忽略前导和尾随空格。
- 接下来是一个可选的规则规范。这里的模式使用 "#N" 指定器强制执行 "正常" 康威规则。替代规则使用 "#R" ("#N" 与 "#R 23/3" 完全相同)。规则编码为生存/出生,每个列表都是一个表示邻居计数的数字字符串。由于康威类规则中恰好有八个可能的邻居,因此不需要分隔数字,两个列表中都不允许使用 "9"。
- 最后是一个包含活动细胞的 (x y) 坐标列表。
环面生命
此文件格式类似于 Life 1.06 格式
- "#环面生命" 后面跟着可选的描述行,以 "#D" 开头。忽略前导和尾随空格。
- 接下来是一个可选的规则规范。这里的模式使用 "#N" 指定器强制执行 "正常" 康威规则。替代规则使用 "#R" ("#N" 与 "#R 23/3" 完全相同)。规则编码为生存/出生,每个列表都是一个表示邻居计数的数字字符串。由于康威类规则中恰好有八个可能的邻居,因此不需要分隔数字,两个列表中都不允许使用 "9"。
- 接下来有一行类似于这样的 "#S",定义网格的大小。
- 最后是一个包含活动细胞的 (x y) 坐标列表。
依赖项
~18–27MB
~372K SLoC