3 个不稳定版本

使用旧的 Rust 2015

0.3.0 2019 年 9 月 11 日
0.2.1 2018 年 9 月 28 日
0.2.0 2018 年 9 月 15 日

#394 in 图形 API

LGPL-3.0-or-later

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