【Code with SOLO】陪初二儿子用 SOLO 做了一个 3D 太阳系(已开源)
多年没写代码的 IT 爸爸 + 初二儿子 + TRAE SOLO,三个周末、两次翻车,做出一个基于 NASA JPL 数据的 3D 太阳系探索器。八大行星真实轨道、主要卫星全覆盖、开普勒第三定律驱动的小行星创建器——已在 GitHub / GitCode 开源。
AI生成内容标识
本页面部分内容由人工智能技术生成或辅助创作。根据《人工智能生成合成内容标识办法》进行标识。
本文首发于 TRAE 官方中文社区 · SOLO 挑战赛专区。 这是继 【Hello AI 科技致善】亲子网站 之后,把其中的"3D 太阳系探索器"单独拎出来、单独开源的记录——发给所有想陪孩子做点什么、但又觉得"自己不行"的爸妈。
摘要
用 TRAE SOLO 陪初二的儿子,从一个学弟在课上的一句嘟囔开始——
"书上那张太阳系图是平的,有啥看头?能不能真的转起来、点进去看?"
儿子把这话当了真,回家第一句话就是:"爸爸,这个能做吗?"于是拉着一个多年没写过代码的 IT 爸爸和 SOLO,三个周末做出了一个基于真实 NASA JPL 天文数据的 3D 太阳系探索器:八大行星按真实轨道运行、主要卫星全覆盖、还能自己画一颗小行星扔进太阳系(开普勒第三定律真·算出公转周期)。
整个链路是:儿子带头 → 爸爸配合 → SOLO 实现 → 儿子验收挑刺。做完之后,他主动拿去分享给同学和老师;老师把链接发给全班。当初那位嘟囔"图是平的"的学弟,据说在走廊里围着儿子问了半天。
背景:一个"多年没写代码的 IT 爸爸",和一个"爱琢磨的初二少年"
我的真实身份:公立医院信息科人员,平时做的是管理——写 PPT、开协调会、跑项目,已经很久没有手写代码。真要我下班后从 0 学 Three.js、搭 3D 场景陪孩子,坦白讲,SOLO 出现之前,这事我连想都不敢想。
儿子那边:对天体一直有执念。刘慈欣翻过不止一遍,天天跟我念叨"三体是不是真的没有解"。
触发点是一个学弟。初一地理课学到太阳系那一章,儿子的一个学弟下课后跟他嘟囔:"书上那张图是平的,能不能真的转起来、点进去看?"儿子当天回家就问我:"爸爸,这个能做吗?"我心里一凉——能做,但按老办法大概要几个月。
我犹豫地说了句"爸爸想想办法",他大概听出了我的虚,马上加了一句:
"不用你一个人做,我跟你一起。"
那一刻我决定,用 SOLO 试一下。——这件事我一个人做不了,但我们俩加上 SOLO,也许可以。
实践过程:三周,多次翻车,一次上线
和很多"一气呵成"的分享帖不一样,我们这个项目其实翻过两次车。真实过程原样讲出来,也许对后面想陪孩子做东西的爸妈更有用。
🪐 第一个周六:儿子想做"自己的星系" → 翻车
儿子第一次提的需求其实不是太阳系,是自定义天体:
"爸爸,能不能做一个我自己设定的星系?我放几颗星球进去,它们自己绕来绕去。"
我把这话原样丢给 SOLO。SOLO 很快给出了一版——结果跑起来不到几秒,几颗星球啪地一下飞出屏幕,像被什么东西弹开了。
- 第一反应以为是 bug,让 SOLO 修
- 改了几轮才搞明白:这根本不是代码的问题,是物理问题
- 用户乱填的轨道参数(质量 / 初速度 / 距离)对引力积分来说根本不合适,稍微不配套,数值积分就爆炸,天体直接飞出宇宙
- 物理上的"稳定轨道"是有很窄的参数窗口的,不是随便画两颗球就能转起来的
儿子:"那我算了,我不当上帝了。"
🌠 第一个周日:儿子想做"三体" → 又翻车
刘慈欣粉都懂——不做自定义,那来点"有纪念意义的":三体。
"爸爸,我们做三颗恒星互相绕的那种!"
SOLO 老老实实写了三体引力计算。结果:
- 三体问题本身就是混沌的,没有解析解,数值模拟跑几圈一定会崩
- 要么三颗星黏在一起变成一颗大火球,要么其中一颗被弹飞到无穷远
- 我们尝试加边界、加约束、加"重置机制",但每次崩的时间点都让儿子抓狂:"还没看够就炸了!"
两次翻车的共同教训:
别让 AI 帮你解数学上就没有稳定解的问题——它能写代码,不能改变物理。
🌍 第二周末:退一步海阔天空——做真实太阳系
儿子自己总结的:"要不我们做一个反正现实里就转得好好的那种?"
于是,真实太阳系这个命题正式立项。这次我要求他把需求写得更具体:
做一个 Web 端 3D 太阳系,面向初中生。
技术栈:Next.js 14 + Three.js + @react-three/fiber + TypeScript。
八大行星按真实轨道参数,使用 NASA JPL 数据;
距离可以压缩方便看(给个"真实 / 夸张"切换开关);
点击行星弹信息卡;时间可暂停 / 加速。
这一版 SOLO 基本一次跑通——前两次翻车攒的经验,这时候全都变成了具体约束。
然后就是踩坑 & 打磨
真实太阳系稳定了,但立刻冒出新的问题。真实地列出来,给后来者少走弯路——关键词:
satelliteScale卫星缩放:太小看不见,太大吃掉其他天体的视觉空间useFrame的时间步长:帧率抖动会让轨道错位timeScale过大时:行星会"跳"进对方轨道webglcontextlost / webglcontextrestored:手机切后台回来就黑屏,必须做上下文恢复- 纹理加载失败要有降级(纯色球 / 低分辨率兜底)
这些坑里有一半,是 SOLO 看到上下文之后主动提醒我的,比如纹理回退和 WebGL 恢复——我自己压根想不到。这是我最佩服它的地方:它不只是在写代码,它在帮你想产品。
最后让儿子自己加的功能
他当场提出的、我当场丢给 SOLO 实现的,还有:
- 自己画一颗小行星(开普勒第三定律算周期)——前两周"当上帝"失败的梦,在稳定的太阳系框架里终于圆了
- 4 个探索任务:初识太阳系(访问八大行星)、伽利略卫星、土星环探秘、类地行星对比,每个带积分
- 键盘快捷键:
Space暂停 /↑↓调速 /M任务面板 /A小行星创建器 /R切自转 /Esc关闭 - 移动端响应式——因为他想"把链接发给同学看"
成果展示
🌐 在线体验
- Live Demo:太阳系探索器 | 3D 交互式天文教育
- 站点入口(其他亲子作品):hj1982.cn
⭐ 开源仓库(欢迎 Star)
✅ 功能清单
- 八大行星 + 太阳,真实轨道参数
- 主要卫星(月球、伽利略四卫星、土卫六 / 二等)
- 自定义小行星(真·开普勒第三定律)
- 4 个探索任务 + 积分系统
- 点击飞行聚焦(缓动 1.5s)
- 时间控制(暂停 / 加速 / 倒退)
- 响应式(桌面完整面板 / 手机可收起)
- 键盘快捷键全量支持
- MIT 开源
效果与总结
🎓 最让我感动的一幕:儿子"分享给老师"的那一天
做完的那个周日晚上,儿子用电脑玩得不亦乐乎,突然说:"爸爸,这个我能不能拿去给同学和地理老师看?"我说当然可以。第二天放学他跑回来,第一句话不是"作业",而是:
"老师把链接发给全班了,说这比课本上的图好多了。那个最早嘟囔'图是平的'的学弟,今天下课在走廊拉着我问了好多问题。"
那一刻我作为爸爸,感觉这段时间的艰辛是值得的。一句课间的抱怨,变成了一个能跑的网站,变成了老师发给全班的链接,又回到了那个最初嘟囔的少年手里——这就是所谓的"闭环"。而做成这个闭环的人,是一个多年没写代码的爸爸,和一个初二的儿子,还有一个叫 SOLO 的工具。
🤖 对我自己:SOLO 真正改变了什么
诚实一点写,不吹也不黑:
- 它不是替我把代码写完了——是让一个多年没写代码的管理者,敢重新开始写。这两者是天壤之别。
- 它帮我补齐"产品思维"——纹理回退、WebGL 恢复、快捷键、响应式,这些"让作品真的能用"的东西,全是它主动建议的。
- 它把我从"老师"重新变回了"爸爸"——我不需要教儿子变量和函数。我们俩都是甲方,SOLO 是乙方。我们第一次,真真正正地,一起做成了一件事。
⚡ 提效对比(诚实版)
对我来说,真正的提效不在时间上,而在"敢不敢"上——SOLO 把"这事我做不来"变成了"这事我们试试"。这是所有提效比里最难量化、也最值钱的一条。
💌 送给同样想陪孩子做点什么的爸妈
- 让孩子来提需求,你来翻译成 Prompt。不要替他想。
- 翻车是资产。我们前两次翻车,才让第三次的 Prompt 有了"稳定"这个关键词。让孩子亲历翻车,比一次跑通更重要。
- 把"这个要发给同学玩"加到 Prompt 里——SOLO 会自动帮你考虑鲁棒性和产品细节。
- 三个周末是一个舒服的节奏:一周做主干、一周踩坑、一周打磨。别想着一个晚上搞完。
后续计划
- 加入黑洞 / 奥尔特云 / 柯伊伯带(儿子的下一个执念)
- 重启三体模式——这次用"三体近似解 + 稳定约束"的路子,让它至少转够 3 分钟
- 整理一份《陪孩子用 SOLO 做第一个 Web 项目》的极简手册
- 把这个作品做成可复用的"家庭项目模板",让零基础爸妈能一键 fork
仓库已经开源,欢迎 Star、Fork、提 Issue——被孩子和陌生人一起挑毛病的作品,才会真的长大。
AI 时代陪孩子的意义,也许不是"教他写代码",
而是"让他看见:想法真的能变成作品"。
致谢
- TRAE SOLO:谢谢你让一个多年没写代码的爸爸,重新敢对孩子说"好,爸爸陪你做"
- NASA JPL & Solar System Scope:开放的数据和纹理,是科普的底气
- 何零壹:最挑剔、最诚实、也最让我骄傲的产品经理
- 那位最早在课间嘟囔"图是平的"的学弟:没有你那一句话,就没有后面所有这些事
- 上一篇帖子里来问源码的朋友:是你们让我下决心单独开源
📎 原帖链接:【Code with SOLO】陪初二儿子用 SOLO 做了一个 3D 太阳系(已开源)- TRAE 官方中文社区
🏠 站点总入口:hj1982.cn——AI 时代陪孩子,不是教他写代码,而是让他看见想法真的能变成作品。