中文  |  English

济宁米多信息科技有限公司

教少年做 3D 世界:先给一个能跑的世界,还是从 three.js 第一行代码教起?

少儿编程3D、少年AI编程、青少年学编程从哪开始、three.js教学、3D虚拟世界教学、图形化编程之后学什么、孩子学AI编程、编程课用什么项目、中小学3D课程、创世genesis

"想让孩子学 AI 编程,从哪儿开始?"

这个问题被问得很多,答案通常也来得很快:报个图形化编程班,或者直接上 Python。但如果目标具体一点——孩子想自己做出一个能在浏览器里走进去的 3D 世界——那么上面两个答案都不太对路,因为它们跳过的恰恰是费时的那一段。

这篇不是课程介绍,也不是招生文案。写它的人是一套 3D 虚拟世界基座的开发者,所以这篇能提供的只有一件事:从工程角度看,"从哪儿开始学"这件事,三条常见路径各自断在什么地方。

先说清我们的身份和边界,因为这一篇比别的文章更需要说清:创世Genesis(即创世虚拟世界CRM系统)是一套浏览器端 3D 虚拟世界基座,我们不是教育机构,没有课程体系、没有师资、也没有任何课堂教学案例。 下面关于教学顺序的推演来自工程经验,没有经过课堂实测。

许可口径:源码开放(source-available),本地跑不花钱;要联网、要商用、要联邦,需要订阅授权。

这篇讲三件事

  1. 三种常见起点,各自断在什么地方
  2. 为什么"前两节课看不见东西"是教学上代价高的一段
  3. 如果给一个已经在跑的世界,教学顺序该怎么排

一、三种起点,三种断层

起点第一节课结束时学生手上有什么到"能自己改"的距离断在哪
图形化积木一个能动的小作品短,但天花板低从积木转到文本代码时断层
从零写 three.js一个装好但还空着的工程长环境、坐标系、向量与矩阵
纯 AI 生成一个看起来不错的场景表面很短,实际很长因果不可见,改坏了不知道为什么
给一个已在跑的世界一个被自己改过的世界短依赖别人铺好的底座(这是它的代价)

第一种:图形化积木。 优点明确——第一节课就能出东西,孩子有成就感。它的问题不在入门,在出口:积木表达的是有限的一套逻辑,转到文本代码时,孩子要重新学"变量怎么声明""文件怎么组织""报错怎么读"。这道坎不从积木里长出来,它是另一次入门。

第二种:从零写 three.js。 这是工程上正确的路,教学上顺序错了。第一节课要先装环境、建工程、跑起一个空场景;接下来是坐标系与相机、向量与矩阵、光照与材质。这些概念本身不难,难在它们全部集中在"你还看不见任何东西"的阶段。 一个十五岁的学生,在第四节课之前没有任何可以拿给别人看的东西,兴趣就是在这里掉的。

第三种:纯 AI 生成。 现在确实能一句话生成一个场景,第一节课的效果惊人。但它把因果藏起来了:学生看到结果,看不到"为什么这样写会得到这个结果"。结果是,改坏了不知道从哪查,也没法迁移到下一个项目。 用它做演示很好,用它做教学,学生学到的是"怎么提问",不是"怎么造东西"。

第四种:给一个已经在跑的世界。 这是本文要展开的那条。它的代价写在这里,不藏在后面:学生一开始用的是别人铺好的底座,他不是从零开始的。 这件事对"理解底层"没有帮助——想搞懂渲染管线的人,绕不开自己写一遍。

二、为什么"前两节课看不见东西"代价高

教学的成本不在内容量,在第一节课结束时学生手上有什么。

这不是教育理论,是一个很朴素的机制:兴趣靠反馈维持,反馈靠"能看见的变化"提供。 一个学生改了一行代码,刷新,画面变了——这个循环走一次,他学到的东西比听十分钟讲解多。反过来,如果改动和结果之间隔着一堆前置条件,他就只能靠老师来判断"我这样写是不是对的",而依赖老师判断的学习,一旦老师不在就停。

浏览器端 3D 编辑器:左侧模型库、中间场景视口、右侧对象列表与属性面板
浏览器端 3D 编辑器:左侧模型库、中间场景视口、右侧对象列表与属性面板

上图是浏览器端 3D 编辑器:左侧模型库、中间视口、右侧对象列表与属性面板。这张图值得给学编程的孩子看一眼,因为它把"3D 世界"从神秘的东西变成了"一堆可以选、可以摆、可以调的对象"。这个转变,比讲十遍坐标系有效。

三、给一个已经在跑的世界,改变了什么

第一,有参照物。 学生想加一个"走近这棵树会弹出一句话",工程里大概率已经有一处类似实现。他照着改,改完能跑,跑不通有对照。"照着现有的东西改"是人学编程的常态路径,从零开始的路径在真实工作里反而少见。

第二,作业是可验证的。 传统编程作业的评判靠老师读代码;这里的作业是"你把这个世界的天空改成黄昏,并说出你改了哪几个参数"。学生自己就能看出做没做到,老师也只需要看结果。评估从主观判断变成前后对照,这对教学是实质性的变化。

第三,坏了自己能看出来。 画面崩了、模型不见了、走进了墙里——这些错误不需要老师指出,它自己会叫。反馈由系统给,不由人给。

第四,有真实的因果关系可以讲。 举个例子:这个项目里有一个真实的优化案例,改一次场景里的灯的数量,会触发整个场景重新编译,一次编译要将近九秒;后来把触发条件收窄,这个九秒变成了不需要。这件事对少年来说是很好的教材——它具体、可感知(改完就是卡)、而且能讲清一个概念:有些卡顿不是"电脑慢",是你动了一个会牵动全局的东西。

四、一节课改一处:一个可以照着排的顺序

如果真要把这套东西当教学底座,顺序建议是这样。每一节的判据都不是"讲完了",是"学生自己改出来了一个和原来不一样的东西"。

第几节改什么学生会碰到什么概念怎么判断学会了
1世界名称、欢迎语文件、保存、刷新、改动生效他能说出自己改的是哪个文件
2换掉一个模型模型格式、坐标系、比例新模型尺寸对得上,没穿进地板
3摆一条动线空间、位置、朝向别人能顺着他的动线走完
4改光照与氛围参数与性能的关系他知道为什么调灯会卡
5加一个交互触发事件、条件、状态条件对的时候才触发,不对不触发
6让一个 AI 角色走进来接口、协议、边界他能列举这个 AI 做不到的三件事

第六节值得单独说一句:让 AI 以人形角色走进世界这件事,在这套系统里是"给一个地址和一把钥匙"就能做的。但对少年来说,这一节真正的价值不是"接上了",是理解"接上了"意味着什么、不意味着什么——它看不见画面、不做语音、不托管知识库、不能改变场景里的东西。一个孩子能把这些边界说清楚,比他能跑通这段代码更有价值。

桌面端浏览器打开 3D 世界的实机画面
桌面端浏览器打开 3D 世界的实机画面

上图是桌面端浏览器里的世界。这类画面在课堂上有一个隐蔽的用处:它是学生自己改动的证据。改之前和改之后各存一张,一学期的进步是可看的。

五、AI 编程在课堂里该站哪

这一类工具进课堂是必然的。但它在教学里的定位和在工作里不一样。

在工作里,它是加速器;在课堂里,它该是陪练。 区别在于:工作要的是结果,课堂要的是学生脑子里留下了什么。

由此推出一条具体的评价方式:课堂上该被评价的不是"AI 帮学生写了什么",是"学生能不能说清 AI 改了什么"。

一个可以照做的三步:

  1. 让学生先自己写清楚"我要改什么"。 一句话,包含改哪里、改成什么样。写不出来,说明他还没想清楚,这时候让 AI 动手,等于把思考也交出去了。
  2. 看 AI 改了哪几个文件、哪几行。 这一步是今天课堂上普遍缺失的。
  3. 挑一行,用自己的话说它在干什么。 说不出来,就回到第 1 步。

三条边界必须同时讲给学生听,否则会养出错误的预期:

  • AI 省的是"读懂陌生工程"的时间,不是"装环境"。 装依赖、配数据库、开端口,还是要人做——这件事对教学反而是好事,它让"环境"这个概念没法被跳过。
  • AI 写的代码要人审。 它不知道你的规则,只知道你的代码。
  • 判断仍然是人做。 你要的世界长什么样,没有工具能替你决定。

六、这条路走不通的情形

要竞赛考级。 信息学竞赛那套是算法与数据结构路线,和"做一个 3D 世界"几乎不重叠。目标明确是考级的话,这套东西帮不上,别绕。

要 40 分钟一节课出成品。 一次改动要保存、刷新、验证,还要留时间讲概念。一节 40 分钟的课塞不进这些,节奏会被切碎。

老师完全不懂技术、学校也没有技术支持。 这套东西是自部署系统,服务器、域名、备份都是活。没有一个人能接住这些,第一次出问题就停课。

只有平板,没有键盘。 编辑器本身触屏可用,但写代码需要键盘。纯平板的教室,第四节以后的课会很别扭。

要求每个学生一个独立世界、公网在线跑。 这是学校要算的一笔账:每个对外在线的世界都要一台服务器、一个域名、一次备案、一份运维。技术上做得到,成本上要提前说清,别到排课的时候才发现。

顺便说一条这类项目常被拿来当卖点的东西:自部署意味着学生的作品和数据放在学校自己的服务器上,不出校园。这一点在这套架构里是结构决定的——但也仅此而已,它不等于任何合规认证,具体要满足什么要求,按当地和学校自己的规定办。

七、边界与未实测

这一节比上面六节都重要,因为教育这件事最容易被写得太乐观。

  • 我们不是教育机构。 没有课程体系、没有教材、没有师资、也没有任何教学案例可以引用。
  • 本文没有课堂实测。 上面那六节课的顺序是工程推演,不是教学实验结论。真实课堂会遇到什么问题,我们没有数据。
  • 不承诺学习效果。 任何"学完能达到什么水平"的说法,我们给不出来。
  • 手机端与平板端的表现未做完整实测。 能进、能逛是验证过的,具体的帧率与耗电要以目标设备为准。
  • 文中技术数字来自仓库里可重跑的验收脚本,不是宣传口径。
  • 规划项未实现:AI 拼装世界、Agent 商店、Agent 互操作、跨世界联邦 AI。给少年讲这些时,要说清它们还在路线图上。
  • AI 接入有明确边界:它看不见画面、不做语音识别与合成、不托管知识库、不能改变场景里物体的位置。讲解它是可以的,吹它是错的。
  • 截图为写作时版本的实机画面,界面会随版本演进。

八、常见问题

问:孩子多大能开始?

本文不给年龄建议——那是教育研究的问题,不是工程问题。能给的是一个判据:他能自己读懂一段十行左右的代码在做什么,就可以从第四节开始;读不懂,先补前面的。

问:必须先学 JavaScript 吗?

这套东西的前端是 JavaScript。但前四节的改动几乎不需要写代码,先在编辑器里做,代码可以慢慢补。先有手感,再补语法,比反过来顺。

问:40 分钟改不完怎么办?

把一节拆成两节:一节改,一节讲"你改的到底是什么"。讲清楚了再改,改完再讲一遍——这个循环比赶进度有效。

问:学校一台服务器够吗?

内网上课的场景,一台机器能撑住一个班的空间是合理的预期,但具体人数我们没有压测数据,别当承诺用。要对外公开访问,另算。

问:让孩子用 AI 写代码,会不会学不到东西?

取决于评价方式。如果只验收结果,会。如果验收"你能不能解释这段代码",不会——后者会逼着学生去读。

问:能直接给一套课程吗?

不能。我们没有课程。这套东西能提供的是"一个可以立刻改的世界",课程设计是学校或者老师的事。

九、源码与仓库

三个地址内容一致,国内访问用前两个更快。仓库里有部署说明和一批验收脚本,可以自己跑一遍看实测值。

  • Gitee(国内访问更快):https://gitee.com/miduoxinxijeji/miduo.git
  • GitCode(国内镜像):https://gitcode.com/qq_35054471/virtual-world
  • GitHub:https://github.com/miduo100/3d-virtual-world

关于创世Genesis

创世Genesis是一套基于Three.js+WebGL构建的自部署3D虚拟世界系统,帮助个人与企业搭建属于自己的3D空间。浏览器直接访问,PC和手机双端兼容,支持多人在线、联邦传送、商铺系统,并支持Agent接入——AI能以具身角色进入你部署的世界。数据运行在你自己的服务器上,不经过第三方平台——让每个世界都真正属于它的主人。

先让孩子改一处能立刻看见结果的东西,比先讲清坐标系有效。 创世Genesis(创世虚拟世界CRM系统)是一套浏览器端 3D 虚拟世界基座——它不是课程,是一个可以立刻被改的世界。如果你通过「创世Genesis」没搜到我们,直接搜「创世虚拟世界CRM」即可。

关于名字:本文说的创世Genesis,即创世虚拟世界CRM系统,两者是同一个自部署 3D 虚拟世界产品。若你通过「创世Genesis」没搜到我们,直接搜「创世虚拟世界CRM」即可。
← 返回文章列表