为了让每天跑程序看不懂英文报错,读不懂英文变量名,看不懂Github英文文档的我们,第一次"看见"自己读的到底是什么。
一个不懂前端的英语爱好者,在 TRAE 里熬了几十个夜晚,把"词根"做成了一个能 360° 旋转的 3D 宇宙。
0. 先说为什么是"词根"
1024 是 2 的 10 次方,也是 Builder 的暗号。我们这行有个隐形门槛:技术世界是英文写的。
import export 是 port(搬运);commit submit transmit 是 mit(送);inspect respect specification 是 spec(看);construct instruct infrastructure 是 struct(建造);describe subscribe prescribe 是 scrib(写)。
词根是英语的 API,单词是调用它的函数。 背单词是在背返回值,懂词根才是读源码。
所以我想做的不是又一个背单词 App,而是把这张"底层调用关系图"直接画出来。
1. 它是什么
这一个纯前端 3D 网页应用(Three.js R160,单文件 HTML + 一个 data.json):
- 143 个词根分布在 3D 球面空间,按 7 个语义聚类(action / thought / science / body / quantity / society / emotion)
- 613 个派生词、298 条关联连线,每条连线都是一次"同源 / 复合 / 反义"的解释
- 拖拽旋转、滚轮缩放、右键平移;点中一个词根,整条关联网络亮起,其余变暗
- 搜索
port,相机会自动飞过去 - 学习进度本地保存:节点亮度 = 你的掌握度(未学 / 初识 / 熟悉 / 掌握),不用账号,不上传任何数据
2. 三个我特意做的设计
一、用空间代替列表。 你记住的不只是 fer = carry,还有它在哪一片光里、和谁连着。球面布局、菌落配色、连线结构,都是给记忆留的"位置编码"——列表记不住的东西,位置能记住。
二、零依赖,断网可用。 Three.js 和 OrbitControls 全部本地化,一个 HTML + 一个 JSON,双击 start.bat 就能跑。没有账号、没有 CDN、不报"网络异常请重试",MIT 开源。
三、黑暗里的光。 视觉灵感来自深夜森林地表:每一根词根是一朵发光蘑菇,语义关联就是菌丝。触碰任意一朵,信号沿菌丝级联点亮整片网络。这是我理解的"探索"——不是被喂知识,是自己发现连接。
3. TRAE 在这件事里到底做了什么
我不是程序员,也没打开过任何传统 IDE,整个项目从头到尾在 TRAE Work 里完成。几个真实节点:
- 一句话到能跑的 3D:我只说"想要节点像菌丝一样分布在一个球面上",它给出了黄金角螺旋布局 + 发光材质 + 星尘粒子 + 射线拾取的完整实现。我完全没有 Three.js 经验。
- 数据不是手填的:我说"扩充到初高中水平",它把词根按词源分类、按 7 个语义菌落聚类、并建立了 298 条关联关系。这部分我自己查词典,是以"天"为单位的。
- 它抓到了我抓不到的 BUG:某天所有交互突然失效,场景成了"只能看不能碰的花瓶"。TRAE 通过代码审查定位到两个很隐蔽的问题——
#ui>*{pointer-events:auto}压过了.cat-labels{pointer-events:none},UI 层吃掉了全部鼠标事件;以及pointerDownTime在时间判定之前被重置,导致点击永远判失败。 - 它陪我绕过了墙:CDN 加载失败、整页白屏 “LOAD FAILED”,最后改成全本地引用,才有了现在的"零外部依赖、任何环境都能开"。
- 连端口冲突这种琐事:自动寻找可用端口,Python / Node 双服务器方案,一次配好。
一条我踩完坑才信的话:AI 是最好的执行者,但你是最可靠的质检员。 "代码看起来对、实际不工作"我遇到不止三次,每一次都是靠浏览器里亲手拖、亲手点才发现的。
4. 现在就玩
- 下载:https://forum.trae.cn/uploads/short-url/w1ZK5sRVRd526vxhYARnf2hSXy0.zip
- 解压后双击
start.bat(Windows)或./start.sh(macOS / Linux),浏览器自动打开localhost:8080 - 或者
python3 server.py/node server.js - 源码(MIT,欢迎 star / 提 issue):GitHub - 304769384-png/MYCELIUM-English-Rootiverse: A universe for English Root Learning · GitHub
5. 1024 的互动:帮我点亮第 8 个菌落
现在的 7 个菌落都是按"语义"分的,没有一个是给开发者准备的。
评论区留一个你每天都在敲的英文词——commit cache query render deploy schema 都行。我会把它反查到词根,按热度把 spec / port / mit / ject / struct / tract 这一批"技术高频词根"单独拉出来,做成第 8 个菌落:一张只属于开发者的星图。
数据结构是开放的,加菌落真的只需要改 data.json——所以不是画饼,是排期。
如果这个作品让你想起自己第一次读懂一行代码的瞬间,评论区扣个 1024,让我知道不只我一个人这么想。
以菌丝之网,解构英语之源。

