Skip to content

Latest commit

 

History

History
271 lines (202 loc) · 16.4 KB

File metadata and controls

271 lines (202 loc) · 16.4 KB

Calcore 产品需求文档(PRD) 版本:v2.1 — 菱形穿透修订版 日期:2026-05-13 状态:核心流程与视觉心智模型重大修订


1. 产品概述

Calcore 是一款以 "菱形穿透(The Diamond Penetration)" 为核心心智模型的可视化计算器。它在外观上保留传统科学/程序员计算器的全部操作体验,但其本质是一个可交互的计算机体系结构棱镜

每一次用户交互——输入一个数字、一个符号、移动光标或按下等号——都被视为一束"信息光"从人类可读的符号表层垂直穿透计算机体系结构的七个地层,在核心处(ALU)发生反应,再垂直折射回表层,显化为最终数字。

整个过程呈现为一个完整的 ◇ 菱形

  • 上半部分为正三角 △:编码下沉(从人到机器)
  • 下半部分为倒三角 ▽:解码上浮(从机器到人)
  • 中心交汇点:ALU 运算核心

核心信条:用户看到的不是黑盒结果,而是一次完整的"符号→硅→符号"的折射旅程。


2. 产品定位

维度 描述
Slogan "See the light through the machine."
核心用户 底层开发者、CS 教育者、硬核技术爱好者、内容创作者
体验对标 3Blue1Brown 的 Manim 几何美学 × 传统计算器零门槛操作
平台策略 平台无关,渲染与计算层完全解耦

3. 功能矩阵(保持不变)

覆盖标准、科学、程序员、日期计算、单位换算等全部模式(详见 v2.0)。本版重点修订可视化流程与呈现逻辑


4. 核心差异化:The Diamond Pipeline(菱形管道)

4.1 整体架构

整个可视化舞台是一个中心对称的菱形网格。所有数据流必须在菱形通道内完成从顶部到底部(△)或从底部到顶部(▽)的旅程,不允许任何"瞬移"或"跳过"。

                    [ASCII Surface △]
                         /\
                        /  \
                  [HEX]/    \[HEX]
                      /      \
                [ASM]/        \[ASM]
                    /          \
              [BIN]/            \[BIN]
                  /              \
          [STACK]/                \[STACK]
                /                  \
               /    [ALU Core ◇]    \
              /                      \
             /                        \
    [ASCII ▽]/                          \[ASCII ▽]
            \                          /
             \                        /
              ========================
                    [显示屏]

4.2 上半锥 △:编码下沉(The Descent)—— 从人到机

层级 名称 产品描述 视觉与动画规范
L1 ASCII Surface 用户在现代 UI 输入的数字、符号、表达式。 字符悬浮在菱形顶部,以浅色冷白发光。每输入一个字符,顶部对应节点被点亮,形成一条连续的光带。
L2 HEX Encoding 字符被编码为十六进制字节流。 字符像玻璃一样碎裂,分解为成对的 HEX 数码(如 '1'0x31)。每个 HEX 值装入一个绿色实心方块,开始沿菱形左腰的通道下行。
L3 ASM Translation HEX 字节流被翻译为汇编指令(mov / push / add / pop / li 等)。架构可选:X64 / RV64 / ARM64 HEX 方块在下行过程中重组为指令卡片,卡片上显示助记符与操作数。不同架构拥有不同的卡片纹理滤镜:x86-64 为硬朗直角金属质感,ARM64 为圆角流体质感,RISC-V 为极简细线质感。
L4 BIN Unfolding 每条 ASM 指令展开为机器码的位数组(64-bit 定宽)。 指令卡片像折纸一样展开,露出内部的 8×8 位格网。位值为 1 时以微型绿色实心方块呈现,位值为 0 时以微型绿色空心方块呈现。
L5 Stack Injection Bit array 被压入内存栈(Memory Stack)。 位格方块从展开状态收束,垂直落入菱形左腰的栈通道。栈通道由绿色空心方块构成的网格组成;压栈时,空心槽位被实心方块填充,栈指针(SP)箭头同步下移。动画质感类似精密机械的卡扣咬合。
L6 ALU Fetch ALU 从内存栈中读取操作数。 实心方块从栈槽中被水平抽取,沿通道滑向菱形中心的 ALU Core。抽取路径上,方块拖曳出淡淡的绿色尾迹。
L7 ALU Execution ALU 执行运算(ADD / SUB / MUL / DIV / AND / OR / XOR 等)。 操作数方块在 ALU 核心中碰撞、融合。内部展开一层极短的布尔逻辑门网格闪烁动画(与 v1.0 的 L1 呼应,但仅作为 ALU 内部的微观一帧)。结果方块在中心生成,颜色从输入绿渐变为青绿色,象征反应完成。

4.3 下半锥 ▽:解码上浮(The Ascent)—— 从机到人

下半部分是上半部分的严格镜像反转。数据流必须从 ALU 核心出发,沿菱形右腰(或对称通道)向上返回,最终闭合为可读的屏幕数字。

层级 名称 产品描述 视觉与动画规范
L7' ALU Result Emit ALU 将运算结果压回内存栈。 结果方块从 ALU 菱形底部"滴落",进入下行通道的对称位置(或菱形右腰的栈通道)。这是 L5 的垂直镜像:方块落入栈槽,栈指针同步移动,但视觉上呈现"从核心向外生长"。
L6' Stack to BIN 结果从栈中取出,重新展开为位数组。 方块从栈槽中升起,重新展开为 64 位格网,位格向上漂浮。与 L4 镜像,方向相反。
L5' BIN to ASM Bit array 重新编码为汇编/数据表示。 位格折叠为指令卡片,继续沿右腰上浮。卡片方向与 L3 相反,如从背面翻回正面。
L4' ASM to HEX 指令卡片压缩为 HEX 字节流。 卡片碎裂为 HEX 字节带,字节以绿色实心方块形式沿右腰上行。
L3' HEX to ASCII HEX 字节流解码为可显示字符。 成对的 HEX 方块融合,重新组装为字符形态(如 0x32 融合为 '2')。
L2' ASCII Surface 最终数字显示在计算器显示屏上。 字符从菱形底部升起,落入显示屏区域,光带在底部形成短暂脉冲后稳定常亮。菱形闭合完成

4.4 交汇点:The ALU Core(◇)

  • 位置:整个可视化舞台的绝对几何中心。
  • 形态:一个发光的菱形节点,是 △ 和 ▽ 的唯一物理连接点。
  • 行为
    • 空闲时:缓慢呼吸灯效,维持舞台重心。
    • 运算时:向四周发射一次环形脉冲,瞬间点亮菱形骨架的所有通道壁。
    • 多步运算时(如表达式含多个运算符):ALU 核心会保留中间结果,以"半实心"状态等待下一次操作数抵达。

5. 视觉心智模型(Visual Mental Model)

5.1 The Diamond Metaphor(菱形隐喻)

现实概念 Calcore 视觉映射
用户输入 白光从菱形顶部进入
编码下沉 △ 棱镜将白光分解为光谱,粒度逐层细化(字符→字节→指令→位)
内存栈 构成菱形左腰(下行缓存)与右腰(上行缓存)的垂直脊柱,或中央栈塔
ALU 运算 棱镜核心,光谱在此发生物理反应并重新合成
解码上浮 ▽ 反应后的光谱按原路反向折射,粒度逐层粗化(位→指令→字节→字符)
屏幕结果 重新合成的光束从菱形底部射出,显化为数字

5.2 方块语义系统(The Block Semantics)

在菱形通道中,统一使用两种基本几何元素:

  • 绿色实心方块:携带实际数据的实体。包括:ASCII 字符体、HEX 字节、ASM 指令卡片、BIN 位格(值为1)、栈中的数值、ALU 结果。
  • 绿色空心方块:表示容器、槽位、地址、指针、等待状态、BIN 位格(值为0)。构成菱形通道壁、内存网格、寄存器空槽。

动态规则

  • 当实心方块流经空心方块构成的通道时,空心方块短暂点亮为"半实心",形成数据涟漪。
  • 栈操作遵循严格的"填入/清空"规则:只有空心槽位被填满时,才允许下一个方块落入。

5.3 指针、地址与段位移(Pointers & Addressing)

  • 64-bit 虚拟地址:显示为菱形边缘的刻度尺,从顶部 0x0000 延伸到底部 0xFFFF...。
  • 指针:以绿色空心方块内嵌箭头的形式存在,悬浮在地址刻度旁。
  • 段位移拼接(Segment + Offset)
    • 段地址(Segment)和偏移地址(Offset)分别在菱形左/右腰的独立刻度尺上标注。
    • 拼接动画:两个滑块沿菱形边缘向中心节点滑动,相遇时合并为一个完整的 64-bit 地址指针。指针以一道绿色光束射向目标内存槽位,槽位被瞬间点亮。

5.4 光标与输入追踪(The Input Probe)

  • 用户在计算器 UI 输入时,菱形顶部存在一个输入探针(悬浮光标)。
  • 每键入一个字符,探针点亮对应的顶部 ASCII 节点,触发该节点的下行链路。
  • 已输入字符形成一条连续的光带横亘菱形顶部,光带长度 = 当前表达式长度。
  • 删除键(Backspace):光带从末端收缩,对应的已下行方块被强制吸回顶部,沿原路径逆向消散。
  • 光标移动:探针在顶部光带中水平滑动,对应的内存缓冲区地址在菱形侧壁高亮。

6. 用户体验与界面设计

6.1 布局架构:菱形舞台(Diamond Stage)

采用 "中心对称沉浸式布局"

┌─────────────────────────────────────────────┐
│  [菜单栏]  标准 | 科学 | 程序员 | 日期 | ...  │
├─────────────────────────────────────────────┤
│                                             │
│              [ASCII 缓冲区 △]                │
│                   /      \                  │
│                  /        \                 │
│    [HEX/ASM/BIN/STACK]    [STACK/BIN/ASM/HEX]│
│                /            \               │
│               /   [ALU ◇]    \              │
│              /                  \             │
│             /                    \            │
│            /                      \           │
│    [结果回显 ▽]                    [结果回显 ▽] │
│             \                      /          │
│              ======================           │
│                                             │
│         [传统计算器按键面板]                  │
│                                             │
├─────────────────────────────────────────────┤
│  [垂直时间轴] [架构切换] [层级过滤] [播放控制]  │
└─────────────────────────────────────────────┘
  • 主舞台:占据屏幕 70% 以上区域,背景为极深色(#0a0a0a),菱形骨架以极暗绿色(#0aff0a @ 8% 透明度)勾勒。
  • 操作面板:位于底部,可折叠。保留传统计算器的全部按键与显示屏,保证零学习成本。
  • 垂直时间轴(The Diamond Scrubber):沿菱形中轴线放置,用户可上下拖动,在 △ 的任意层级与 ▽ 的任意层级之间自由穿梭,查看"此刻"的完整状态。
  • 架构切换器:位于舞台右下角,切换 X64 / RV64 / ARM64 时,菱形中间层(L3/L3')的卡片纹理发生"万花筒旋转"式过渡,上下层保持不动。

6.2 关键交互场景

场景 A:输入表达式 12+7=

  1. 1

    • 顶部 ASCII 层:'1' 亮起,光带开始。
    • L2:'1' 碎裂为 0x31,装入实心方块沿左腰下行。
    • L3:翻译为架构指令(如 mov rax, 1li t0, 1),呈现为指令卡片。
    • L4:展开为 64-bit 位格网。
    • L5:压入栈通道,SP 下移。
    • L6-L7:暂存于 ALU 侧翼,等待下一个操作数。
  2. 2

    • 同上流程,但与前一个数字在 ALU 侧翼拼接为数值 12(展示十进制位权展开:1×10 + 2)。
  3. +

    • ASCII '+' (0x2B) 下行。
    • 触发调度场算法:运算符优先级解析在菱形侧壁生成微型 AST 节点,以绿色空心方块表示待执行的运算框架。
    • ALU 核心进入"等待操作符"状态,边框变为琥珀色。
  4. 7

    • 操作数 7 完成 △ 下行,抵达 ALU。
  5. =

    • ALU 核心爆发运算动画:两个操作数方块碰撞,127 的位格在核心内展开布尔运算。
    • 生成结果 19(0x13)。
    • 结果进入 ▽ 上行通道。
    • L7'→L2':沿右腰逐层上浮,BIN → ASM → HEX → ASCII。
    • 底部 '1''9' 依次亮起,落入计算器显示屏。
    • 菱形完成一次完整闭合,外框发出一次绿色脉冲。

场景 B:程序员模式位运算 0xFF & 0x0F

  • 输入直接以 HEX 形态进入 L2,跳过 ASCII 表面层的"字符碎裂"动画,改为"直接注入"动画。
  • L4 层展开时,8×8 位格网成为视觉焦点,用户可清晰看到 0xFF 的全1位格与 0x0F 的低4位1格。
  • ALU 执行 AND 运算时,两排位格在核心处重叠,对应位执行 AND 逻辑,结果位格逐位点亮。
  • 结果 0x0F 沿 ▽ 返回。

场景 C:光标移动与删除

  • 探针在顶部光带滑动,菱形内部对应层级的地址指针同步滑动。
  • 删除时,被删除字符对应的整个下行链路(已传播到 L5/L6 的方块)被强制沿原路径吸回顶部,路径上的空心槽位依次熄灭,形成逆向瀑布。

7. 非功能需求(修订强调)

7.1 动画与性能

  • 帧率:菱形舞台核心区域稳定 60 FPS
  • 延迟:从按键到 ASCII 层点亮 ≤ 50ms;从 = 到 ALU 核心爆发 ≤ 100ms
  • 时间轴:支持 0.25x / 0.5x / 1x / 2x / 4x 播放速度,暂停时可单步(以菱形层级为单位)前进。

7.2 逻辑自洽

  • 上下镜像必须严格对称:△ 中从 L3 到 L4 的"展开"动作,必须在 ▽ 的 L5' 到 L4' 中以完全逆向的"折叠"动作呈现。
  • 多架构切换时,同一 HEX 输入在不同 ASM 层必须产生不同但逻辑自洽的指令卡片,但最终的 BIN 层和结果层必须数值完全一致

7.3 平台无关

  • 菱形渲染层基于标准图形抽象(WebGPU / Vulkan / Metal / DirectX 的统一上层),确保跨平台像素级一致。
  • 数值计算引擎与架构抽象模型使用平台无关的定点/浮点实现,保证可视化与真实计算逻辑同构。

8. 里程碑(修订重点)

阶段 目标 关键交付
M1 菱形骨架引擎 完成中心对称菱形网格、方块系统、通道壁、ALU 核心节点
M2 △ 下行链路 完成 ASCII→HEX→ASM→BIN→Stack→ALU 的七层动画与数据流
M3 ▽ 上行链路 完成严格的镜像反转链路,实现菱形闭合
M4 架构滤镜 实现 X64 / RV64 / ARM64 的 ASM 层纹理切换与指令差异
M5 交互抛光 输入探针、时间轴 scrubber、光标同步、删除逆向瀑布、3B1B 级缓动质感

9. 附录:术语表(新增)

术语 说明
菱形穿透(Diamond Penetration) Calcore 的核心心智模型,指信息从 ASCII 表层垂直穿透七层计算机体系结构并在中心 ALU 反应后垂直返回的完整旅程
△ 上行 / ▽ 下行 正三角为编码下沉(人→机),倒三角为解码上浮(机→人)
菱形闭合(Diamond Closure) 一次完整计算从输入到输出,上下三角拼接为完整菱形的最终状态
输入探针(Input Probe) 悬浮在菱形顶部的光标追踪器,同步用户按键位置
架构滤镜(Architecture Filter) 应用于 L3 ASM 层的纹理与指令映射规则,切换时像万花筒旋转

文档结束