Initial public release
Some checks failed
Test / test (push) Has been cancelled

This commit is contained in:
2026-09-19 21:31:36 +08:00
commit 198fcbf55b
837 changed files with 67239 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-09-11

View File

@@ -0,0 +1,21 @@
## Context
排列器以几何主链、取值支线及共享引用组织节点。循环目前额外计算支线宽度并预留两端间距。
## Goals / Non-Goals
目标是让循环执行步骤紧凑可读,并保持前置几何处理的横向先后关系。
## Decisions
- 预览层从完整区域成员中筛选几何执行主链,取值计算复用支线排列流程。
- 横向列依赖保留实际几何来源,局部引用端口保持连接顺序。
- 使用真实 Depth Cutout 和小型循环验证布局、连接及几何求值。
- 简单计算链在有限高度内纵向分段,复杂支线按消费者形成独立 Frame。
- 支线按实际消费输入与连通依赖分组,计算流程保持连续展开。
- 几何引用线同时处理向前与回向连接,水平通道统一避让节点、支线及已有通道。
- 引用线的高差通过有横向展开的斜向曲线过渡。
## Risks / Trade-offs
支线引用循环数据时可能需要回向连线;通过分离主链通道和支线区域保证可读性,并验证几何连接语义保持一致。

View File

@@ -0,0 +1,22 @@
## Why
Repeat 为取值支线预留宽度,导致单个 Set Position 的循环被拉长,前置循环的处理顺序也难以辨认。
## What Changes
- 按循环执行主链排列 Repeat 两端,取值支线独立排列。
- 几何处理节点按真实上游依赖确定先后位置。
- 更新排列测试、节点资产和交互预览。
- 将长计算链紧凑排列,为复杂支线添加 Frame,并分离几何引用线通道。
## Capabilities
### New Capabilities
- `compact-repeat-arrangement`: 紧凑呈现循环执行主链并保持几何处理顺序。
### Modified Capabilities
## Impact
涉及 `tools/nodes/arrangement`、`tools/nodes/preview`、相关测试和 `O_AnyImage.blend`。

View File

@@ -0,0 +1,64 @@
## ADDED Requirements
### Requirement: Compact repeat execution path
排列器 SHALL 按循环执行的几何步骤安排 Repeat 两端,取值支线独立排列。
#### Scenario: Set Position loop with long value calculations
- **WHEN** 循环只执行 Set Position,输入值来自长计算链
- **THEN** Repeat 两端保持围绕 Set Position 的紧凑排列,预览执行区域按几何主链确定
### Requirement: Geometry processing order
排列器 SHALL 将前置循环安排在后续几何处理之前。
#### Scenario: Depth Cutout boundary smoothing
- **WHEN** 排列 O Image Depth Cutout 的前置边界平滑循环
- **THEN** 循环位于其后续几何消费者左侧,保持原有连接与求值结果
### Requirement: Readable field branches and geometry references
排列器 SHALL 将取值支线紧凑安排在消费者附近,复杂支线使用互不重叠的 Frame,并分离几何引用的水平通道。
#### Scenario: Long calculation chain
- **WHEN** 消费者使用较长的简单计算链
- **THEN** 计算链使用紧凑折叠及分段纵向布局
- **AND** 连续依赖按计算方向展开,独立计算按实际消费输入分组
#### Scenario: Complex depth cutout branches
- **WHEN** 排列 O Image Depth Cutout
- **THEN** 复杂计算支线分别成框,几何引用线保持独立的水平通道,并通过斜向曲线过渡,原有几何求值保持一致
#### Scenario: Geometry trunk alongside its consumer frame
- **WHEN** 几何主干向 Frame 内的计算节点供值
- **THEN** 主干与完整 Frame 边界保持间距,通过斜向分支接入框内消费者
#### Scenario: Long branch near its geometry consumer
- **WHEN** 较大支线需要占用来源和消费者之间的横向空间
- **THEN** 主线在消费者之前预留支线及斜向出口的空间,连续主线保持直接向前连接
#### Scenario: Independent calculation before a geometry consumer
- **WHEN** 支线独立于上游几何结果
- **THEN** 支线可向主线起点之前展开,主线按实际出口位置保持紧凑
#### Scenario: Return connection and neighboring reference tracks
- **WHEN** 几何结果连接左侧消费者
- **THEN** 连线直接向消费者方向过渡,各水平通道按最终范围保留间距
#### Scenario: Geometry fanout without overlapping wires
- **WHEN** 同一几何结果供多个节点消费
- **THEN** 近处消费者直接接入,公共水平通道按从左到右分发,每段公共连线只绘制一次
- **AND** 水平连线保持向前,短 reroute 间距合并,近乎平行的曲线与主线保持间距
#### Scenario: Shared results outside calculation branches
- **WHEN** 几何或其他类型的结果供多个支线消费
- **THEN** 共享结果沿支线外围的公共管道分发,在消费者附近斜向接入
- **AND** 原有主线连接保持执行顺序,公共管道与节点、Frame 及其他管道保留间距
#### Scenario: Geometry transits an unrelated calculation
- **WHEN** 几何连接沿途经过其他支线
- **THEN** 整段曲线绕开不消费该结果的 Frame,仅允许进入自身来源或消费者所属的 Frame
#### Scenario: Peripheral producers feed their shared pipes forward
- **WHEN** 支线计算的结果通过公共管道供多个消费者使用
- **THEN** 共享计算支线与管道一同位于消费者外围,管道入口在结果输出节点右侧

View File

@@ -0,0 +1,46 @@
## 1. 排列
- [x] 1.1 分离循环执行主链与取值支线,修正前置循环位置
- [x] 1.2 更新预览区域和回归测试
## 2. 验证
- [x] 2.1 运行节点资产构建和全量测试
- [x] 2.2 生成并检查交互预览
## 3. 支线与引用
- [x] 3.1 缩短支线,支持简单计算链纵向排列并靠近消费者
- [x] 3.2 为复杂支线生成独立 Frame,并同步预览与坐标处理
- [x] 3.3 统一几何引用线避让,分离水平通道和回向连线
- [x] 3.4 更新回归测试、构建资产并完成全量及视觉验证
## 4. 主干与 Frame 间距
- [x] 4.1 为几何主干保留整个 Frame 的边界间距,覆盖相连消费者的 Frame
- [x] 4.2 验证回归用例、重建资产并更新预览
## 5. 支线消费位置
- [x] 5.1 按较大支线及斜向出口所需空间延长主线,按出口距离选择支线位置
- [x] 5.2 保留直接向前的主线连接,减少几何引用的外围折返
- [x] 5.3 验证连接、求值与布局,重建资产并更新预览
## 6. 收紧主线与分离回向连接
- [x] 6.1 去掉回向连接在来源右侧的多余折返点
- [x] 6.2 按实际出口估算主线间距,独立计算可在起点之前展开
- [x] 6.3 按最终线段范围分配水平通道并扩大不同来源的间距
- [x] 6.4 总线按从左到右分发,近处消费者直接接入,分离近乎平行的曲线并检查同源绿线重复覆盖
- [x] 6.5 重建资产、检查截图区域并完成全量验证
## 7. 共享结果外围管道
- [x] 7.1 合并几何与其他类型的共享引用布线,共用结果沿支线外围就近分发
- [x] 7.2 绿线绕开不消费该结果的 Frame,并验证实际曲线范围
- [x] 7.3 验证主线保留、外围间距与连接语义,重建资产并检查预览
## 8. 共享来源与管道入口
- [x] 8.1 将共享结果的计算支线安排在消费者外围,管道从输出右侧开始
- [x] 8.2 验证入口方向、支线位置及求值,重建资产并更新预览