暮色中的现代驱逐舰编队航行在深色海面上

独立开发 · 模拟与界面

Portfolio / Notes — 2026

阮家忆 — Lightcone Studio

把现实 跑一遍。

三个浏览器里的模拟系统:一片海、一块战场、一具人体。没有后端,没有构建步骤,打开就能跑。

  • 03模拟系统
  • 100生理状态量
  • 410种药物
  • 20回归探针
夜间实验室:多台显示器上显示地形网格与生理波形
LAB / NIGHT SHIFT — 02:14

01 关于

我做的东西,大多是一个可以被反复推演的假设。

写浏览器里的系统:海战、载具、人体。它们的共同点不是题材,而是都要先有一套自洽的规则,然后让规则自己长出行为。

这个站点用来放三个做完的模拟、几篇工程笔记,以及一些还没成形的想法。所有项目都是纯前端,没有服务器,也没有账号。

03项目
03笔记
2026整理于
0后端依赖

02 Selected Work

三个尺度

一片海、一块战场、一具人体。三种完全不同的物理,同一种做法:先写规则,再看它跑起来。

03 Method

模拟不是画得像,
而是算得对。

下面三条不是设计口号,是从三个项目的代码约定与调试记录里抄出来的。它们比任何视觉细节都更能决定一个模拟器好不好用。

  1. 01

    实测标定,
    不读代码猜

    物理量有疑问就实测标定。防空导弹初速、机炮散布、粒子采样间距,都是打出来、量出来再定下的数。

    《光锥:定海》· 调试小抄
  2. 02

    每个失败
    都要说话

    每一个提前返回都要给玩家一句反馈。静默失败没有堆栈、没有报错,只有玩家的一句「按了没反应」。

    《光锥:定海》· 代码约定 05
  3. 03

    唯一入口,
    不写第二套

    进入座舱、取玩家位置、判断飞机是否可操作——都只有一个入口。写第二套实现,两套就会慢慢漂移。

    《光锥:定海》· 代码约定 04

Interlude 诗

十二联 · 2026

星火。

星火燃旧骨,共振待新弦。

凛冬淬寒刃,破晓裂长天。

风摧松未折,雪过梅愈坚。

岂容阴霾久,终迎曙色先。

江河纵九曲,东去势凛然。

不等东风起,自闯云中关!

黎明前最暗,星火可燎原。

千帆过尽处,春意已阑珊。

心有凌云志,何惧行路难。

待到雾散时,一啸动千山!

来路多坎坷,前路亦漫漫。

但持初心在,何愁不翻盘。

《星火》· 光锥工作室 写给还在推演的人

Appendix 代码

这段代码,
就是背景。

本页背景不是图片:几千颗粒子按一条对数螺线排成四条旋臂,随页面滚动进入视野才开始转。整段实现只有一个 draw call,没有泛光后处理,标签页切走就停。

WebGL2单 pass自适应粒子数30 FPS零依赖
galaxy.js / 生成函数LIVE · 30 FPS


              /** 星火 — 本页背景的生成函数 *  四条旋臂,一条对数螺线,几千次心跳。 */const 星火 = (i) => {  const r = Math.pow(Math.random(), 0.72);        // 内密外疏  const θ = (i % 4) * TAU / 4                     // 四条旋臂          + 3.3 * Math.log(r * 3.4 + 1.2);        // 对数螺线  return {    x: Math.cos(θ) * r,    z: Math.sin(θ) * r,    y: gauss() * (0.016 + 0.10 * Math.exp(-r * 3.4)),    light: 1 - r * 0.8,                           // 越靠核心越亮  };};for (let i = 0; i < COUNT; i++) 星海.push(星火(i));// 每帧只做一件事:让它再转 0.012 弧度p = rotateY(p, clock * 0.012); 

          

左右滑动查看完整代码

05 Contact

想看看某个模拟,
真正跑起来的样子?

806117943@qq.com ↗

欢迎来信聊聊物理、界面,或者任何一个还没做完的模拟。