Calcore 产品需求文档(PRD) 版本:v2.1 — 菱形穿透修订版 日期:2026-05-13 状态:核心流程与视觉心智模型重大修订
Calcore 是一款以 "菱形穿透(The Diamond Penetration)" 为核心心智模型的可视化计算器。它在外观上保留传统科学/程序员计算器的全部操作体验,但其本质是一个可交互的计算机体系结构棱镜。
每一次用户交互——输入一个数字、一个符号、移动光标或按下等号——都被视为一束"信息光"从人类可读的符号表层垂直穿透计算机体系结构的七个地层,在核心处(ALU)发生反应,再垂直折射回表层,显化为最终数字。
整个过程呈现为一个完整的 ◇ 菱形:
- 上半部分为正三角 △:编码下沉(从人到机器)
- 下半部分为倒三角 ▽:解码上浮(从机器到人)
- 中心交汇点:ALU 运算核心
核心信条:用户看到的不是黑盒结果,而是一次完整的"符号→硅→符号"的折射旅程。
| 维度 | 描述 |
|---|---|
| Slogan | "See the light through the machine." |
| 核心用户 | 底层开发者、CS 教育者、硬核技术爱好者、内容创作者 |
| 体验对标 | 3Blue1Brown 的 Manim 几何美学 × 传统计算器零门槛操作 |
| 平台策略 | 平台无关,渲染与计算层完全解耦 |
覆盖标准、科学、程序员、日期计算、单位换算等全部模式(详见 v2.0)。本版重点修订可视化流程与呈现逻辑。
整个可视化舞台是一个中心对称的菱形网格。所有数据流必须在菱形通道内完成从顶部到底部(△)或从底部到顶部(▽)的旅程,不允许任何"瞬移"或"跳过"。
[ASCII Surface △]
/\
/ \
[HEX]/ \[HEX]
/ \
[ASM]/ \[ASM]
/ \
[BIN]/ \[BIN]
/ \
[STACK]/ \[STACK]
/ \
/ [ALU Core ◇] \
/ \
/ \
[ASCII ▽]/ \[ASCII ▽]
\ /
\ /
========================
[显示屏]
| 层级 | 名称 | 产品描述 | 视觉与动画规范 |
|---|---|---|---|
| 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 内部的微观一帧)。结果方块在中心生成,颜色从输入绿渐变为青绿色,象征反应完成。 |
下半部分是上半部分的严格镜像反转。数据流必须从 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 | 最终数字显示在计算器显示屏上。 | 字符从菱形底部升起,落入显示屏区域,光带在底部形成短暂脉冲后稳定常亮。菱形闭合完成。 |
- 位置:整个可视化舞台的绝对几何中心。
- 形态:一个发光的菱形节点,是 △ 和 ▽ 的唯一物理连接点。
- 行为:
- 空闲时:缓慢呼吸灯效,维持舞台重心。
- 运算时:向四周发射一次环形脉冲,瞬间点亮菱形骨架的所有通道壁。
- 多步运算时(如表达式含多个运算符):ALU 核心会保留中间结果,以"半实心"状态等待下一次操作数抵达。
| 现实概念 | Calcore 视觉映射 |
|---|---|
| 用户输入 | 白光从菱形顶部进入 |
| 编码下沉 △ | 棱镜将白光分解为光谱,粒度逐层细化(字符→字节→指令→位) |
| 内存栈 | 构成菱形左腰(下行缓存)与右腰(上行缓存)的垂直脊柱,或中央栈塔 |
| ALU 运算 | 棱镜核心,光谱在此发生物理反应并重新合成 |
| 解码上浮 ▽ | 反应后的光谱按原路反向折射,粒度逐层粗化(位→指令→字节→字符) |
| 屏幕结果 | 重新合成的光束从菱形底部射出,显化为数字 |
在菱形通道中,统一使用两种基本几何元素:
- 绿色实心方块:携带实际数据的实体。包括:ASCII 字符体、HEX 字节、ASM 指令卡片、BIN 位格(值为1)、栈中的数值、ALU 结果。
- 绿色空心方块:表示容器、槽位、地址、指针、等待状态、BIN 位格(值为0)。构成菱形通道壁、内存网格、寄存器空槽。
动态规则:
- 当实心方块流经空心方块构成的通道时,空心方块短暂点亮为"半实心",形成数据涟漪。
- 栈操作遵循严格的"填入/清空"规则:只有空心槽位被填满时,才允许下一个方块落入。
- 64-bit 虚拟地址:显示为菱形边缘的刻度尺,从顶部 0x0000 延伸到底部 0xFFFF...。
- 指针:以绿色空心方块内嵌箭头的形式存在,悬浮在地址刻度旁。
- 段位移拼接(Segment + Offset):
- 段地址(Segment)和偏移地址(Offset)分别在菱形左/右腰的独立刻度尺上标注。
- 拼接动画:两个滑块沿菱形边缘向中心节点滑动,相遇时合并为一个完整的 64-bit 地址指针。指针以一道绿色光束射向目标内存槽位,槽位被瞬间点亮。
- 用户在计算器 UI 输入时,菱形顶部存在一个输入探针(悬浮光标)。
- 每键入一个字符,探针点亮对应的顶部 ASCII 节点,触发该节点的下行链路。
- 已输入字符形成一条连续的光带横亘菱形顶部,光带长度 = 当前表达式长度。
- 删除键(Backspace):光带从末端收缩,对应的已下行方块被强制吸回顶部,沿原路径逆向消散。
- 光标移动:探针在顶部光带中水平滑动,对应的内存缓冲区地址在菱形侧壁高亮。
采用 "中心对称沉浸式布局":
┌─────────────────────────────────────────────┐
│ [菜单栏] 标准 | 科学 | 程序员 | 日期 | ... │
├─────────────────────────────────────────────┤
│ │
│ [ASCII 缓冲区 △] │
│ / \ │
│ / \ │
│ [HEX/ASM/BIN/STACK] [STACK/BIN/ASM/HEX]│
│ / \ │
│ / [ALU ◇] \ │
│ / \ │
│ / \ │
│ / \ │
│ [结果回显 ▽] [结果回显 ▽] │
│ \ / │
│ ====================== │
│ │
│ [传统计算器按键面板] │
│ │
├─────────────────────────────────────────────┤
│ [垂直时间轴] [架构切换] [层级过滤] [播放控制] │
└─────────────────────────────────────────────┘
- 主舞台:占据屏幕 70% 以上区域,背景为极深色(#0a0a0a),菱形骨架以极暗绿色(#0aff0a @ 8% 透明度)勾勒。
- 操作面板:位于底部,可折叠。保留传统计算器的全部按键与显示屏,保证零学习成本。
- 垂直时间轴(The Diamond Scrubber):沿菱形中轴线放置,用户可上下拖动,在 △ 的任意层级与 ▽ 的任意层级之间自由穿梭,查看"此刻"的完整状态。
- 架构切换器:位于舞台右下角,切换 X64 / RV64 / ARM64 时,菱形中间层(L3/L3')的卡片纹理发生"万花筒旋转"式过渡,上下层保持不动。
-
按
1:- 顶部 ASCII 层:
'1'亮起,光带开始。 - L2:
'1'碎裂为0x31,装入实心方块沿左腰下行。 - L3:翻译为架构指令(如
mov rax, 1或li t0, 1),呈现为指令卡片。 - L4:展开为 64-bit 位格网。
- L5:压入栈通道,SP 下移。
- L6-L7:暂存于 ALU 侧翼,等待下一个操作数。
- 顶部 ASCII 层:
-
按
2:- 同上流程,但与前一个数字在 ALU 侧翼拼接为数值
12(展示十进制位权展开:1×10 + 2)。
- 同上流程,但与前一个数字在 ALU 侧翼拼接为数值
-
按
+:- ASCII
'+'(0x2B) 下行。 - 触发调度场算法:运算符优先级解析在菱形侧壁生成微型 AST 节点,以绿色空心方块表示待执行的运算框架。
- ALU 核心进入"等待操作符"状态,边框变为琥珀色。
- ASCII
-
按
7:- 操作数
7完成 △ 下行,抵达 ALU。
- 操作数
-
按
=:- ALU 核心爆发运算动画:两个操作数方块碰撞,
12与7的位格在核心内展开布尔运算。 - 生成结果
19(0x13)。 - 结果进入 ▽ 上行通道。
- L7'→L2':沿右腰逐层上浮,BIN → ASM → HEX → ASCII。
- 底部
'1'、'9'依次亮起,落入计算器显示屏。 - 菱形完成一次完整闭合,外框发出一次绿色脉冲。
- ALU 核心爆发运算动画:两个操作数方块碰撞,
- 输入直接以 HEX 形态进入 L2,跳过 ASCII 表面层的"字符碎裂"动画,改为"直接注入"动画。
- L4 层展开时,8×8 位格网成为视觉焦点,用户可清晰看到
0xFF的全1位格与0x0F的低4位1格。 - ALU 执行 AND 运算时,两排位格在核心处重叠,对应位执行 AND 逻辑,结果位格逐位点亮。
- 结果
0x0F沿 ▽ 返回。
- 探针在顶部光带滑动,菱形内部对应层级的地址指针同步滑动。
- 删除时,被删除字符对应的整个下行链路(已传播到 L5/L6 的方块)被强制沿原路径吸回顶部,路径上的空心槽位依次熄灭,形成逆向瀑布。
- 帧率:菱形舞台核心区域稳定 60 FPS。
- 延迟:从按键到 ASCII 层点亮 ≤ 50ms;从
=到 ALU 核心爆发 ≤ 100ms。 - 时间轴:支持 0.25x / 0.5x / 1x / 2x / 4x 播放速度,暂停时可单步(以菱形层级为单位)前进。
- 上下镜像必须严格对称:△ 中从 L3 到 L4 的"展开"动作,必须在 ▽ 的 L5' 到 L4' 中以完全逆向的"折叠"动作呈现。
- 多架构切换时,同一 HEX 输入在不同 ASM 层必须产生不同但逻辑自洽的指令卡片,但最终的 BIN 层和结果层必须数值完全一致。
- 菱形渲染层基于标准图形抽象(WebGPU / Vulkan / Metal / DirectX 的统一上层),确保跨平台像素级一致。
- 数值计算引擎与架构抽象模型使用平台无关的定点/浮点实现,保证可视化与真实计算逻辑同构。
| 阶段 | 目标 | 关键交付 |
|---|---|---|
| M1 | 菱形骨架引擎 | 完成中心对称菱形网格、方块系统、通道壁、ALU 核心节点 |
| M2 | △ 下行链路 | 完成 ASCII→HEX→ASM→BIN→Stack→ALU 的七层动画与数据流 |
| M3 | ▽ 上行链路 | 完成严格的镜像反转链路,实现菱形闭合 |
| M4 | 架构滤镜 | 实现 X64 / RV64 / ARM64 的 ASM 层纹理切换与指令差异 |
| M5 | 交互抛光 | 输入探针、时间轴 scrubber、光标同步、删除逆向瀑布、3B1B 级缓动质感 |
| 术语 | 说明 |
|---|---|
| 菱形穿透(Diamond Penetration) | Calcore 的核心心智模型,指信息从 ASCII 表层垂直穿透七层计算机体系结构并在中心 ALU 反应后垂直返回的完整旅程 |
| △ 上行 / ▽ 下行 | 正三角为编码下沉(人→机),倒三角为解码上浮(机→人) |
| 菱形闭合(Diamond Closure) | 一次完整计算从输入到输出,上下三角拼接为完整菱形的最终状态 |
| 输入探针(Input Probe) | 悬浮在菱形顶部的光标追踪器,同步用户按键位置 |
| 架构滤镜(Architecture Filter) | 应用于 L3 ASM 层的纹理与指令映射规则,切换时像万花筒旋转 |
文档结束