#graph-node #node #graph #directed-graph #graphical #programming

gantz

一个用于在运行时创建和评估可执行有向图的crate

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年6月6日

#31#graphical

MIT/Apache

14KB
153

gantz 构建状态 Crates.io Crates.io docs.rs

一个用于在运行时创建和评估可执行有向图的crate。换句话说,gantz 允许用户在动态中组合由相互连接的节点描述的程序。

Gantz 是受到对更灵活、高性能、开源替代图形编程环境(如Max/MSP、Touch Designer、Houdini 等)的渴望而启发的。 命名灵感来自 gantz graf

目标

  • 使用 derive 从Rust代码中创建自定义节点的一种简单方式。
  • 解决自定义节点中泛型和特例对象的处理。
  • 通过 serde 实现 SerializeDeserialize
  • 通过图进行 评估。
  • 通过图进行 评估。
  • 提供一套常用的“std”节点,无需额外安装。
    • 原始类型和转换。
    • 映射到 std::opsAddSubMulDiv 等。
    • 带有 std::fmt 节点: DebugPrettyDebugDisplay
    • Vec 构造函数和方法。
    • String 构造函数和方法。
    • 转换函数: IntoFromFromStrFromIterator 等。
    • 一个允许将类型解构为其字段的 DeStructure 节点。
    • 带有推和拉变体的定时器/时钟节点。用于测试速率很有用。

在实现这些目标之后,gantz 将集成到 nannou,在那里它将被扩展到高级工具,包括

  • 一个用于在运行时创建、编辑和保存图和自定义节点的GUI。
  • 节点打包和共享工具。
  • 一套提供对 nannou 的跨平台支持的各种协议和 I/O 的接口节点。
    • 窗口和输入事件。
    • 分频器和信号。
    • 音频输入、输出、处理和设备管理。
    • 2D/3D 几何、图形和着色器。
    • 视频输入和处理。
    • 网络(UDP 和 TCP)。
    • OSC。
    • 照明、激光和控制:DMX(通过 sACN)、CITP(和 CAEX)、Ether-Dream。
    • GPU 通用计算。
    • 通用文件读写。

许可证

根据您的选择

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交的旨在包含在作品中的贡献,将根据上述方式双重许可,不附加任何额外的条款或条件。

依赖项

约 3MB
约 62K SLoC