开发者生态
morning
TALA 是开源的
2026-09-08
1 阅读
约6分钟阅读
alixanderwang
字号:
继此处发布的公告之后,TALA(Terrastruct 的自动布局算法)现已在与 D2 (MPL-2.0) 相同的许可证下开源。 TALA 是一种新颖的自动布局算法,在设计时考虑了软件架构图。这意味着它主要是一种正交布局引擎,它更接近您在白板上可能找到的内容,而不是沿一个方向增长的基于 DAG 的引擎。它融合了不同图形绘制研究论文(在源代码中引用)的想法以及原始技术来实现美观的图表。它考虑了“美学”的多个目标,包括对称性、中值距离、流动、相似节点的聚类等等。我将保持文字简短并以示例开头。第一批将使用 TALA 渲染的图表与 D2 附带的其他两种布局算法(Dagre 和 ELK)进行比较。这些不是手工选择的,我只是从 GitHub 上找到了公共 d2 文件。因此,对于某些人来说,您可能更喜欢非 TALA 布局。第二批展示了 TALA 的一个独特属性,即节点位置和大小可以定制,例如锁定坐标。这特别适合代理用例,其中模型可以很好地在 2D 空间中绘制,但 TALA 仍然负责路由,而模型仍然在努力解决这个问题。我让人工智能生成这些。第三批展示了 TALA 支持混合指定坐标和一些留给布局引擎的节点的能力。您可能心中有一个特定形状的节点集合,您可以使用坐标指定该形状,TALA 可以处理其余的事情。再次,人工智能产生了。另请注意,TALA 并非没有权衡。它的算法具有随机性。它通过使用默认的 3 个种子并选择得分最高的种子来找到最佳布局。给定相同的种子和相同的输入,它将产生相同的图表。但假设您只是再添加一个节点。该图可能看起来完全不同。在 Dagre 和 ELK 中,它看起来与之前的基本相同,只是容纳了额外的节点。这有时是可取的。它也不做 DAG。当我想要一个长的流动图时,我经常发现自己更喜欢 Dagre 或 ELK。运行更大的图表可能需要更长的时间——非线性缩放。有关 TALA 与其他运行时性能比较的基准,请参阅 https://github.com/d2lang/d2-benchmarks 。 TALA 捆绑在 D2 v0.9.0 中,因此只需安装并指定 --layout=tala 即可尝试!或者访问 https://play.d2lang.com ,它 100% 客户端运行。我特别期待开源带来的改进,并且迫不及待地想看看社区提交了哪些改进和想法。特别感谢 Gavin Nishizawa 对 TALA 做出的广泛贡献,以及 Júlio César Batista 在层次算法等方面的工作。和你们一起做这些有趣的事情真是太有趣了。第 1 批:比较 Fulcro RAD 架构 选择一个图来放大。每个布局都经过缩放以适合其面板。 Mocha secure-enclave SoC 选择一个图来放大。每个布局都经过缩放以适合其面板。 AWS EKS 上的 Jupyter 选择一个图表将其放大。每个布局都经过缩放以适合其面板。 Lion Reader 前端数据流 选择一个图表以放大它。每个布局都经过缩放以适合其面板。 ROSS 转子动力学工作流程 选择一个图表将其放大。每个布局都经过缩放以适合其面板。 Go Queue Worker 架构 选择一个图来放大它。每个布局都经过缩放以适合其面板。 Ouroboros Leios 模拟器 选择一个图来放大它。每个布局都经过缩放以适合其面板。第2批:自定义定位信号屋查看D2源码图集/数据平台查看D2源码夜班/任务控制查看D2源码周五部署:密室逃脱查看D2源码互联网是水母查看D2源码轨道咖啡物流查看D2源码云温室查看D2源码天鹅绒绳查看D2源码Synthwave City查看D2源码第3批:部分定位印刷室固定:四个 CMYK 站共享固定的顶部坐标和等距的左侧坐标,因此印刷序列保持其机械对齐。自动:TALA 定位送料器、相机、套准控制器、烘干机、印前和印后步骤;没有一个有顶部或左侧。参见定位声明 查看 D2 源 MULE / Utility Rover 固定:四个电机组件固定在底盘矩形的前角和后角。自动:TALA 将每个控制器、传感器、电源和安全节点放置在这些角落之间或周围,并安排未定位的车队集装箱。请参阅定位声明 查看 D2 源代码 源代码和渲染详细信息 七个布局比较使用来自 D2 真实世界灯具的公共项目图。每次比较都使用相同的 D2 源和相同的编译器版本,仅更改布局引擎。源样式、主题和说明
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱