我一直觉得,我们的生活——无论是肉身所在的那个,还是屏幕里的那个——都堆满了「内容」,却荒芜于「仪式」。城市的节奏每一刻都在把我的肾上腺素往上推,推到我对「慢下来、向内低语」这件事生出了抗拒,怕一慢下来就错过了什么。有很长一段时间我不愿承认,但是的,我有 FOMO。

十一月初,在多伦多那种兵荒马乱的日子里,有个念头突然击中我。有人问我一周前做了什么,我竟然想不起来。我选了一种把执行和完成排在最前面的节奏,那就得承受它随身带来的麻木。我知道数字可以是有意义的——当样本足够大的时候;可那样一来,一切又都成了统计表里的一个点,正弦函数上的一个坐标。我的人生,用起和伏就能描述完。

正弦波:人生的起与伏

就像我编排自己人生的方式一样,大多数软件是为了解决问题而生的。它想让你更快、更聪明、更有效率。但当我坐下来做 LOOP——我的数字仪式应用——的时候,我不想做一个工具。我想做一面镜子。LOOP 是一座虚拟的避难所,用来安放人类经验的两面:白日之下的秩序,和夜里的混沌。

哲学:吃,睡,狂欢,重来

午夜是结束,还是开始?我想每个人心里都有自己的答案。衔尾蛇是这个应用的心跳,一个永远在转的导航锚点,把白天和夜晚接在一起。LOOP 的想法很简单:太阳升起时我们过日子,天黑之后我们做梦。

于是,日轮模式是建筑师,是我们交付逻辑的地方;月轮模式是做梦的人,是我们松开潜意识的地方。当用户在 LOOP 里把书写养成一种仪式,每写完一篇,衔尾蛇都会提醒他们:每一个终点,不过是另一个起点。

衔尾蛇:关于永恒轮回的古老符号

正弦波的魔法

我一直以为「艺术」和「工程」是两个不同的房间,现在我才看清,它们只是同一个房间的两扇门。

技术上,LOOP 建在 React Native 和 Expo 之上。但这个应用的魂住在一个叫 Skia 的库里。它让我绕过标准 UI 组件,用数学直接向 GPU 作画。做那条衔尾蛇,不是让一个 <div> 往右挪一点;这条蛇是在正弦波的计算和 GLSL 着色器(跑在显卡上的一小段程序)里,才开始呼吸的。

炼金引擎

这趟旅程里最让我兴奋的部分,是造「大脑」。我不想让那些画面是随机的。我想让它们是你的。

这个确定性的分析引擎叫「炼金术士」。当你写完一篇,应用不只是把文字存下来,它会去尝那段文字的味道:尝它的能量(打字速度、字数、标点),尝它的混沌(词汇的离散程度),尝它的情绪。这些看不见的指标,最终生成一幅独一无二的抽象画。你不只是在读自己的历史,你是在看自己心智的视觉指纹。

LOOP 应用截图:书写界面 LOOP 应用截图:生成的画面

把 LOOP 合上

LOOP 是灵魂版的 Geoguessr:一件书写的乐器,一场被创作冲动推着走的技术实验。经过多年严格的学术训练,我身上那个允许自己沉溺于纯粹的、未经优化的创造的部分,几乎已经睡着了。可那股想做点什么、想把东西造出来的躁动,始终没有平息。LOOP 是又一次尝试:用二进制那种冰冷的精确,去捕捉一个人身上毛茸茸的、温热的、混乱的真实。它是我对那些统治我们生活的效率算法的一次反叛。

如果你读到这里,今天找个片刻,停下滑动。找一个仪式。看看你自己内部的天气。如果你需要一面镜子才能看清,衔尾蛇一直在那儿等着。