MAKING A LIVING WORLD / 创作手记BOYAN PENG · 2026

Aftertide余潮

A city that keeps living.
A journal of how it came to be.

一座继续生长的城市。
以及它逐渐成形的过程。

Early scenes, experiments, revisions—and a world made for the lives that come after us.

从早期场景、实验与反复修改,走向一个为后来生命留下的世界。

The v35 city panorama, before the cover typography was added.
The v35 city panorama, before the cover typography was added.v35 城市全景,正式封面叠加片名之前的原始画面。
THE FILM / 影片

A city awakens beneath the sea.一座城市,在海底苏醒。

YouTube ↗

118 seconds · Chinese & English · Sound on · Selected fixed-step engine footage, edited at the original motion speed.118 秒 · 中英双语 · 建议开启声音 · 引擎固定步长实录节选,保留原始动作速度。

01AUG — SEP 2026

Before there was a city在城市出现之前

AFTERTIDE began as an underwater experiment: a whale, manta rays, jellyfish and luminous shrimp moving among rocks, columns and suspended particles. The first question was how a body could feel alive in water. A tail cycle alone was not enough; acceleration, a pause in propulsion, a turn of the head and the delayed movement of a tentacle all mattered.

余潮最初是一个水下实验:鲸、蝠鲼、水母和发光的虾,穿行于岩石、石柱与悬浮颗粒之间。最先要解决的是,怎样让一个身体在水里显得有生命。循环摆尾还不够;加速、短暂滑行、头部的转向,以及触须迟一步的运动,都影响着这种感觉。

01 / The early ocean prototype: luminous life, scattered ruins and open water.
01 / The early ocean prototype: luminous life, scattered ruins and open water.01 / 早期海洋原型:发光生物、零散遗迹与开阔水域。
Material study: the first field of stone columns.
Material study: the first field of stone columns.材质研究:最初的石柱遗迹。
The earlier whale system, before the later Tripo whale.
The earlier whale system, before the later Tripo whale.早期鲸系统;后续才替换为 Tripo 鲸。

The early material work was also a lesson in restraint. Excessively strong normal perturbations made stone look noisy; higher-frequency detail flickered when seen from a distance. I used fixed camera views and before/after captures to separate actual surface improvements from brighter noise.

早期材质调试也是一次减法练习。过强的法线扰动让石头像噪点,高频细节又会在远景中碎闪。我用固定机位和前后对照,区分真正的表面改善与只是变亮的噪声。

The setting gradually shifted from a collection of ruins toward a human city reclaimed by the sea. Streets could become migration routes, abandoned transit could offer shelter, and rooms could become habitats. Early titles and teal-toned studies remain in the archive; the darker blue city and the name AFTERTIDE emerged through those revisions.

场景逐渐从遗迹的集合,转向一座被海水重新接管的人类城市:街道成为迁徙通道,废弃交通设施提供庇护,房间成为生境。档案里保留了早期片名与偏青色的研究;更深的蓝色城市,以及《余潮》这个名字,都是在这些修改中逐渐形成的。

02 / An early city and title study: towers replace the stone landscape.
02 / An early city and title study: towers replace the stone landscape.02 / 早期城市与片名研究:塔楼开始取代石柱景观。
03 / The palette moves toward deep blue; the civic ring remains an anchor.
03 / The palette moves toward deep blue; the civic ring remains an anchor.03 / 配色逐渐转向深蓝,公共圆环成为空间锚点。
02SPACE / STRUCTURE

A city you can move through让城市成为可以穿行的地方

The first city had a recognizable skyline but its buildings still felt like isolated objects. I organized later passes around a central waterway, station forecourts, public gardens and layered crossings. What matters is the space between structures: the routes a visitor, train or animal can actually take.

第一版城市已经有了天际线,但建筑仍像各自独立的物件。后续改造围绕中央水道、站前空间、公共花园与多层连接展开。重要的是结构之间的空间:观众、列车和生物,究竟可以从哪里经过。

04 / Final bridge study: the OCEAN building connects to the clock tower.
04 / Final bridge study: the OCEAN building connects to the clock tower.04 / 最终吊桥研究:从 OCEAN 大楼连接到钟表塔。

Too many horizontal bridges flattened the arrival view. Diagonal and inward-running routes, different landing heights and a rotated entrance camera restored depth. The low suspension bridge was moved between the OCEAN building and the clock tower; its deck, cables and attachment points were treated as one connected structure.

过多横向桥梁把入口画面压平。斜向与向内延伸的路径、不同高度的落点,以及偏转后的入口视角,重新带回了纵深。低位吊桥最终接在 OCEAN 大楼与钟表塔之间,桥面、主索与锚点按同一组连接关系调整。

At a smaller scale, doors needed to face walkable routes and foundations needed to meet the sand. Train cars needed consistent sections and two bogies to follow a curve. The clock tower gained a readable illuminated face; NOVA, OCEAN, PALIMPSEST and TIDAL became part of the city’s visual memory, with the later signs mounted on building sides.

更小的尺度上,门口要朝向可通行的路径,地基要真正落在沙里。列车需要统一截面,并由前后两个转向架共同跟随曲线。钟塔补上可读的发光表盘;NOVA、OCEAN、PALIMPSEST 与 TIDAL 则成为城市的视觉记忆,后加的灯牌安装在建筑侧面。

05 / v35: a wide view keeps bridges, streets and the returning light in one frame.
05 / v35: a wide view keeps bridges, streets and the returning light in one frame.05 / v35:用远景把桥梁、街道和重新亮起的城市放在同一个画面里。
03GPT / IMAGE GENERATION / TRIPO / BLENDER

From an image to a world that works从一张图,到真正运转的世界

I used two connected ways of building. With GPT / Codex, I translated design decisions into image prompts and Blender Python. Tripo reconstructed selected reference images as textured 3D objects. Blender then became the place to build exact structures, inspect generated geometry and join the two into usable assets.

我把两条制作路线接在一起:与 GPT / Codex 协作,将设计判断写成图像提示词或 Blender Python;用 Tripo 将选定参考图转成带材质的三维物件;再在 Blender 中搭建精确结构、检查生成网格,把两者合成为可用资产。

A · IMAGE TO FORM

Prompt → reference image → Tripo

提示词 → 参考图 → Tripo 模型

Silhouette, surface character and PBR textures.

轮廓、表面特征与 PBR 材质。

B · CODE TO STRUCTURE

GPT → Blender Python → geometry

GPT → Blender Python → 参数化几何

Dimensions, repeated structures and precise interfaces.

尺寸、重复结构与精确连接。

Together in Blender → GLB → Three.js: scale, materials, light and behavior.在 Blender 中合流 → GLB → Three.js:统一尺度、材质、光照与行为。
CASE 01 / REFERENCE → RECONSTRUCTION → REBUILD

A building the roots could embrace让根冠真正抱住建筑

The root-wrapped building started with an edited reference. I wanted the architecture to remain dominant: low, mineral branches had to touch the structure, wrap the corner and leave the entrance open. The saved prompt below is the actual final image-edit instruction, applied to an earlier reference.

根冠楼从一张反复修改的参考图开始。建筑仍应占主导:低位的矿化枝干要接触结构、绕过转角,并给入口留出空间。下面保留的是最后一轮真实图像编辑提示词,它作用于上一版参考图。

01The instruction设定约束

Keep the roots to roughly the lower third. Grow sideways around the corner. Preserve the facade and the open doorway.

根冠高度控制在建筑下部约三分之一;枝条横向绕过转角;保持建筑立面与入口通畅。

Read the original image-edit prompt · English展开原始图像编辑提示词 · 英文
Use case: precise-object-edit.
Input image: the building and calcified-root integration render is the edit target.
Primary request: change ONLY the root system's scale and growth direction so it embraces the lower structural corner naturally and lets the building dominate. Preserve the building geometry, glass, doorway, lighting, camera, framing, gray studio setting and both material families.
Root change: shrink its overall vertical extent to approximately 35% of the building height. All organic growth must stay within the ground floor and next floor; upper facades remain completely unobstructed. Keep a substantial coarse basal mass connected into the foundation. Reconfigure six broad mineral branches so several curve laterally along the lowest horizontal frame bands and at least two curl around the rounded building corner onto the adjacent facade. Thick branches hug the structural surfaces with clear contact; a short branch may rise along the corner only to the second-floor band. Reduce upright antler-like fingers and redirect that material sideways. Keep the main doorway completely open, keep most lower glass visible and preserve large gaps between branches.
Retain pale gray-white calcite texture, rounded substantial branch sections, broad natural growth ridges and slight erosion. The root system must read as marine growth shaped by and attached to the building, rather than a freestanding tree pasted in front.
Avoid: changing the architecture, adding more floors or windows, root tips above the bottom third, fine vines, tiny twigs, glowing roots, metal plating, detached pieces, new objects, people, text or watermarks.
02Generated reference生成参考图
Image generation / the approved v3 reference: lower roots and a clear entrance.
Image generation / the approved v3 reference: lower roots and a clear entrance.图像生成 / v3 参考图:压低根冠,保留建筑与入口。
03Tripo reconstructionTripo 生成模型
Actual Tripo source model, rendered in Blender. The dark windows are still part of the generated surface.
Actual Tripo source model, rendered in Blender. The dark windows are still part of the generated surface.Tripo 源模型在 Blender 中的实渲;黑色窗面仍属于生成的表层。
04GPT + Blender refinementGPT + Blender 重建
Actual rebuilt GLB: retained roots, open window bands, transparent glazing and four levels of interior depth.
Actual rebuilt GLB: retained roots, open window bands, transparent glazing and four levels of interior depth.重建后的真实 GLB:保留根冠,切出窗带,加入透明玻璃与四层室内深度。

The source arrived as one connected mesh. GPT-assisted Blender scripts selected and removed the opaque window surfaces while protecting the roots, doorway and structural frame. New glass panes, floors, ceilings and small interior elements made the building readable through its windows. Four levels of light panels could then respond to the story.

源模型是一张连通网格。GPT 辅助编写的 Blender 脚本选择性移除不透明窗皮,同时保护根冠、门洞与结构框架;再补入玻璃片、楼板、顶板和少量室内构件,让窗后真正有空间。四层灯片随后才能参与叙事中的逐层亮起。

Source: 48,890 triangles · Hybrid: 31,354 triangles · Four rebuilt levels源模型 48,890 三角面 · 混合成品 31,354 三角面 · 重建四层窗带与室内
CASE 02 / GPT → BLENDER PYTHON → CITY

The city that began as code用代码搭起城市的骨架

Other geometry was built directly in Blender through GPT / Codex-authored Python. The early city generator lays out fourteen towers around an open waterway, builds floor slabs and window openings, then adds the civic rings, elevated structures and a continuous seabed. Explicit parameters make proportions and clearance adjustable together.

另一部分几何由 GPT / Codex 编写 Python,直接在 Blender 中构造。早期城市生成器围绕开阔水道布置十四座塔楼,建立楼板与窗洞,再加入公共圆环、高架结构和连续海床。尺寸与间距写成参数,比例和通行净空就可以一起调整。

A new neutral render of the retained September city .blend. These are actual scripted meshes, before the later Tripo additions and final lighting.
A new neutral render of the retained September city .blend. These are actual scripted meshes, before the later Tripo additions and final lighting.从保留的九月城市 .blend 新渲染的中性模型图:这是脚本生成的真实网格,早于后续 Tripo 资产与最终灯光。
BLENDER PYTHONActual tower-layout excerpt塔楼布局真实代码节选
# Towers frame a clear central water volume and a long flooded avenue.
for spec in [(-990,-340,390,400,1690,1),(1030,-570,440,470,2010,0),
             (-930,-1510,420,470,2020,0),(980,-1740,400,440,1790,1),
             (-1190,780,410,470,1210,0),(1260,700,370,410,1430,1),
             (-470,-2660,370,400,2330,1),(370,-2850,340,430,2070,0),
             (-1690,-2310,420,430,1850,0),(1630,-2460,450,440,2160,0),
             (-1860,-940,380,440,1470,1),(1830,-900,400,510,1720,0),
             (-1800,200,360,450,1850,0),(1870,320,390,420,1630,1)]:
    tower(*spec)

The same generator also exports a geometry manifest and the seabed height field. The browser uses this spatial information for ground contact and movement. This is an early foundation preserved in the archive; the final city adds later asset replacements, lighting, ecology and choreography.

同一个生成器还会导出几何清单与海床高度场,网页运行时据此处理接地和运动。这张图展示的是保留在档案中的早期底模;最终城市在它之上继续更换资产、加入灯光、生态和镜头调度。

CASE 03 / TRIPO HULL + SCRIPTED SAILS

One vessel, two kinds of making一艘逆帆,两种建模方式

The sailship made the division of work especially clear. An image-generation study established the upside-down silhouette and overlapping translucent sails. I then isolated the solid hull for Tripo. The curved membranes, their attachment points and the structural rigging were built separately through code and assembled in Blender.

逆帆把分工体现得更清楚:图像生成先确定倒悬轮廓和交叠的半透明帆面,再把实心船壳单独提取出来交给 Tripo。弯曲帆面、连接点与结构索具则由代码单独构建,并在 Blender 中装配。

Image-generation concept / compact hull and overlapping submerged sails. This is a design reference, not a frame from the running artwork.
Image-generation concept / compact hull and overlapping submerged sails. This is a design reference, not a frame from the running artwork.图像生成概念 / 紧凑船壳与交叠水下帆面。这是设计参考,不是作品运行截图。
Read the original hull-reference prompt · English展开船壳参考图的原始提示词 · 英文
Use case: precise-object-edit. Asset type: isolated hard-surface hull reference for Tripo 3D reconstruction.
Use the attached ship concept as the design reference. Extract and redesign ONLY the compact inverted ship HULL, with no sails or masts, no wires, no water, no city, no foam. A single isolated polished metallic futuristic boat hull on flat neutral medium-gray background, three-quarter view slightly from below so its downward-facing underside deck and side edge are visible. Horizontal long axis, pointed bow on right, rounded tapering stern on left, compact elegant boat-shaped crescent silhouette (length to width 3.5:1, shallow height). Closed continuous curved pearl titanium outer shell, charcoal inset grooves, subtly layered structural ribs around THREE small recessed circular mast mounting sockets underneath. Detailed clean bevels and organic flowing hard-surface silver ribs; tiny warm glass recessed portholes, not glowing lights. The hull keel is on TOP and deck is on BOTTOM because it is upside down. No vertical towers, no wings, no engine rockets, no transparent materials, no text. Neutral broad soft studio lighting, no cast shadow, entire isolated object visible with generous margin. Keep hull short and sculptural as in compact reference.
Reference for Tripo / only the hull, with sails, water and city removed.
Reference for Tripo / only the hull, with sails, water and city removed.交给 Tripo 的参考图 / 只保留船壳,移除帆面、水体与城市。
Actual Tripo hull GLB rendered in Blender / 17,202 triangles, before local outfitting.
Actual Tripo hull GLB rendered in Blender / 17,202 triangles, before local outfitting.Tripo 船壳 GLB 在 Blender 中的实渲 / 17,202 三角面,尚未追加本地构件。
TRIPO

A textured starting form

带材质的形体起点

The compact sculptural hull and its source PBR textures.

紧凑的雕塑感船壳,以及源 PBR 纹理。

GPT / CODEX + BLENDER

A connected, editable vessel

有结构、可编辑的船体

Five curved sails, hems, masts, tension fittings, rigging and detailed hull outfitting.

五片弯曲帆面、帆缘、桅杆、张力连接件、索具与船壳细部。

Assembled vessel in the live scene / the Tripo hull and scripted sails share one structure, with real-time light and motion added in Three.js.
Assembled vessel in the live scene / the Tripo hull and scripted sails share one structure, with real-time light and motion added in Three.js.场景中的装配成品 / Tripo 船壳与脚本帆面共用一套结构,Three.js 再加入实时光照与运动。

Blender produced an editable assembly and a complete GLB. Three.js supplied the continuous route, chapter lighting, sail response and wake. The result depends on those connections: the generated hull provides its surface identity, while authored geometry and behavior make it a vessel that belongs to the world.

Blender 输出可编辑装配与完整 GLB;Three.js 再负责连续航线、章节灯光、帆面响应与尾流。生成船壳提供表面特征,定制几何与行为则让它成为这个世界里能够航行的一艘船。

More retained asset studies更多保留的资产研究
07 / Selected asset studies: source objects are distinct from their runtime assembly.
07 / Selected asset studies: source objects are distinct from their runtime assembly.07 / 部分资产研究:生成物件与运行时装配分别记录。

Generation was followed by selection. Some facade studies did not meet the required proportions; a sea-fan candidate was rejected after close geometry inspection. Rails, glazing divisions, foundations and joints still needed precise local geometry.

生成之后仍然需要筛选。有些立面样件的比例不合适,一件海扇候选也在近景几何检查后被拒收。轨道、玻璃分格、基础与接头等位置,仍需要精确的本地几何。

04LIGHT / SURFACE / SEDIMENT

Light needs a source. Water needs a trace.光要有来源,水要留下痕迹

The caustics initially read as a tiled net. Their regular spacing and sharp intersections made the seabed feel patterned rather than illuminated. Later work reshaped the optical field into smoother, irregular folds, using continuous motion instead of frame-by-frame random noise. Fine detail also had to soften with distance so it would not sparkle against the buildings.

焦散最初像一张平铺的网:规则间距和尖锐交点,让海床更像铺了纹样。后续把光学场调整为更圆润、不规则的折叠,通过连续变化驱动,而不是逐帧随机抖动。细节还要随距离收敛,避免在建筑边缘变成碎闪。

The underwater rays went through another correction. Broad cones looked like fog; isolated bright shafts looked like searchlights with no source. The revised approach ties narrower rays to the surface illumination, wave motion and sun direction. The entry region on the water and the light below must agree, while architecture interrupts the beam.

水下光束经历了另一轮纠正:太宽的锥体像雾,孤立的亮柱又像没有来源的探照灯。调整后的方向是,让更收束的射线与水面照明、波浪和太阳方向对应;入水位置与下方的光必须联系起来,建筑则应当遮住光路。

Earlier light study: room depth and local highlights.
Earlier light study: room depth and local highlights.早期灯光研究:房间纵深与局部亮部。
v35: jellyfish, glazing and water share the same architectural depth.
v35: jellyfish, glazing and water share the same architectural depth.v35:水母、玻璃与水体共享建筑的前后层次。

City light follows the same principle of contrast. Silence keeps a few scattered signals. Rewilded adds living light without washing out the whole city. Echoes restores selected room circuits, signs and transit lights in stages, including restrained flicker. Darkness between the lit areas makes the return visible.

城市灯光也依靠对比建立层次。寂静里保留零星信号,生态重占加入生物的光,避免把整城一起提亮;回响则分阶段恢复部分房间电路、标识与交通灯,并保留克制的闪烁。亮处之间的暗部,才让复苏真正被看见。

The sand gained a local memory of movement: displacement, suspended particles and settling. Vehicles and nearby bodies can disturb it, with ground contact and shadows checked together. This is a bounded 2.5D approximation for the artwork, not a full fluid simulation.

沙地增加了局部的运动记忆:位移、悬浮颗粒和重新沉降。车辆及近底生物可以扰动它,接地与阴影也需要一起检查。这是一套为作品服务的有界 2.5D 近似,并非完整流体模拟。

05SHOAL / JELLYFISH / WHALE

A shared current共享同一道水流

The sardine storm became one of the world’s main actors. Fish gather, open a passage around a larger body and return to the architecture. The important moment is not only the dense vortex: it is also the opening, the hesitation and the way the school closes again after a whale or departing train passes.

沙丁鱼风暴逐渐成为这个世界的主角之一。鱼群聚合,为更大的身体打开通路,然后回到建筑之间。重要的不只是密集旋涡,也包括开口、短暂迟疑,以及鲸或离站列车经过后重新合拢的过程。

08 / The whale and school meet in the central waterway, with the city giving their scale.
08 / The whale and school meet in the central waterway, with the city giving their scale.08 / 鲸与鱼群在中央水道相遇,建筑提供体量参照。

Jellyfish use a contraction-and-recovery rhythm, with movement and light responding to the pulse. Their tentacles retain motion history instead of following as rigid ornaments. Manta rays glide and bank, while smaller residents and suspended matter add movement at other scales.

水母以收缩与恢复的节奏推进,运动和亮度随脉冲回应;触须保留运动历史,避免像僵硬饰物一样跟随。蝠鲼滑翔、侧倾,小型住客与悬浮物则在不同尺度上补充运动。

The later visible whale is a Tripo asset with a rig, custom materials and procedural motion. Its route was moved into the open central corridor after repeated problems between towers. Collision checks consider its body envelope rather than only a center point. That gives it room to turn and gives the viewer time to understand its size.

后期可见的鲸使用 Tripo 资产,结合骨架、自定义材质与程序化运动。它曾反复困在高楼之间,因此巡游路线调整到开阔的中央水道;碰撞检查也考虑身体包络,而不只是中心点。这样既给它留出转弯空间,也让观众有时间感受它的体量。

These interactions are selective and local. Neighbor searches are bounded with a spatial grid, shared calculations are reused, and repeated objects use instancing. The intention is a coherent ecological impression within a browser’s budget, rather than an exhaustive ocean simulation.

交互采用有选择的局部计算:用空间网格限制邻居搜索,复用共同计算,并通过实例化绘制重复个体。目标是在浏览器的预算内形成连贯的生态感,而非穷尽整个海洋的模拟。

06CAMERA / STORY / SOUND

A repair becomes a return从一次修复,到整座城市的回应

The story brings the animals, the returning humans and the city’s technology into one sequence. A visitor first meets the existing life, then sees a returning craft deliver energy and a maintenance rover restore a connection. Light and movement follow that small act: rooms respond, the old train rises, and fish make space for it.

故事把生物、归来的人类与城市技术串在同一条线上。观众先遇见已经生活在这里的生命,再看归航的潜航器交付能量、维护车修复连接。光与运动随后回应这件小事:房间亮起,旧日列车升起,鱼群为它让出空间。

09 / A physical repair gives the returning light a cause.
09 / A physical repair gives the returning light a cause.09 / 一次具体的修复,让重新亮起的光有了原因。
Archive / an early train departure and chapter-lighting study.
Archive / an early train departure and chapter-lighting study.档案 / 早期列车离站与章节灯光研究。
v35 / the later Tripo train lifts into a moving school.
v35 / the later Tripo train lifts into a moving school.v35 / 后期 Tripo 列车升入流动的鱼群。

Two competing camera systems had made the journey feel disjointed. The later passes brought the timing and shot transitions into a shared sequence, shortened the less-developed station passage and gave the relighting a sustained city-wide view. Nearby shots establish detail; wider views let the consequences of a repair register.

两套相互竞争的运镜系统曾让旅程显得割裂。后续把时序和镜头交接整合到共同序列中,缩短细节尚弱的车站段,并为整城复明安排持续的远景。近景建立细节,远景则让修复带来的变化得到充分展示。

A beautiful camera position is only half a shot. The route into it also has to work. Transitions around buildings were revised to reduce collision-driven corrections; the sailship is now viewed with the city behind it. Both outward and return transfers were lengthened so the camera could settle before the next event.

漂亮机位只完成了一半,抵达它的路径也必须成立。绕楼转场经过修改,以减少碰撞纠正造成的顿挫;帆船则增加了以城市为背景的视角。前往帆船与返回海面的转场都被拉长,让镜头在下一件事发生前有时间安定下来。

10 / Looking back through the inverted sailship toward the city.
10 / Looking back through the inverted sailship toward the city.10 / 从倒悬帆船旁,回望城市。

The climax follows the actual whale event: ascent, release, flight and re-entry. Surface effects were refined away from an opaque white burst toward the surrounding water’s color and scale. The aurora continues the luminous movement from the underwater world through the surface, keeping the ending connected to what came before.

高潮跟随鲸的真实事件推进:上浮、离水、腾空与回落。水面效果从过白的团块,逐渐向周围水体的颜色和尺度收敛。极光则把水下的发光运动延伸到海面之外,让结尾仍与来处相连。

11 / The breach: a real event in the scene’s animation sequence.
11 / The breach: a real event in the scene’s animation sequence.11 / 破水:场景动画序列中实际发生的事件。
12 / The light continues beyond the sea.
12 / The light continues beyond the sea.12 / 光继续向海面之外延伸。

Two pieces. One continuous arc.

两段音乐,一条连续的情绪线。

The 118-second film uses “Weightless Glow” 1 and 2, made with Suno. An eight-second crossfade at 00:46–00:54 sits inside the city’s 00:45–00:55 relighting view. The second piece then carries the train, whale, sailship and surface passage. The final 27 seconds retain consecutive source frames, preserving the breach and aurora in their actual order.

118 秒影片使用以 Suno 制作的《Weightless Glow》1、2。00:46–00:54 的八秒交叉淡化,安排在 00:45–00:55 的城市复明远景之内。第二段继续承接列车、鲸、帆船与出海;最后 27 秒保留连续源帧,让破水和极光保持实际发生的先后关系。

07LOADING / RENDERING / DELIVERY

The work behind a smoother first turn第一次转身背后的工作

The costs became most obvious during entry and the first camera turn: new materials compiled, textures reached the GPU and previously unseen parts of the scene became visible at once. Preparing the relevant render resources before entry, sharing materials and geometry, and reducing repeated per-frame work became as important as adding detail.

开场和第一次转身最容易暴露开销:新材质编译、纹理上传到 GPU,原本看不见的场景又同时进入视野。进入前准备所需渲染资源、共享材质与几何、减少每帧重复计算,变得和增加细节同样重要。

164 → 3Script requests in the web build网页构建中的脚本请求
24.95 MBAsset bytes saved losslessly无损减少的资产体积
725Checks passed for the v35 scenev35 场景通过的检查

The public web package consolidates script requests and uses versioned asset caching. Selected assets were reduced without changing their content. Smooth and Full quality modes give visitors a choice, while the loading screen reflects preparation before the world is revealed.

公开网页版本合并脚本请求,并使用带版本的资产缓存;部分资源在不改变内容的前提下减小体积。Smooth 与 Full 两种质量模式给观众选择,加载界面则在世界揭幕前呈现准备状态。

Some visible stutters were interface issues. The progress display could move backward as phases changed. At entry, a long loading label changed to a shorter action label after the overlay had already faded, making the UI jump. The handoff now prepares the final button state before revealing it.

一些肉眼可见的卡顿其实来自界面:加载阶段交接时,进度曾经倒退;遮罩已经淡出,按钮才从长的加载文案变成短的操作文案,又让 UI 跳了一下。现在交接会先准备最终按钮状态,再揭开遮罩。

One recorded desktop web check measured about 65 seconds to readiness on a cold load and 16 seconds with cached assets. A later public cold check was slower. Those observations depend on the device, connection and cache; heavy initial downloads and fish-school CPU work remain areas to improve. The 30 fps film is fixed-step engine output and is not evidence of real-time 30 fps playback.

一次桌面网页检查记录到冷加载约 65 秒、缓存后约 16 秒就绪,随后一次公开地址冷加载检查更慢。这些观察依赖设备、网络与缓存;首次下载量和鱼群 CPU 开销仍有优化空间。影片的 30 fps 来自引擎固定步长输出,不能作为实时运行达到 30 fps 的证明。

The useful question became: does this detail help the world feel connected—and can the experience afford it?

后来最有用的问题是:这处细节能让世界更连贯吗?体验又能否承担它的代价?

08NOTES / CREDITS

A living archive持续生长的创作档案

This retrospective brings together development notes, retained scene captures, asset records and the completed v35 film. Early images retain their original look and, in some cases, development UI. They are shown as stages of the work, not as interchangeable views of the final release. The film and cover use actual engine-rendered scenes; image-generation tools supported concepts and selected artwork elsewhere in the project.

这篇回顾汇集开发笔记、保留的场景截图、资产记录和已经完成的 v35 影片。早期图像保留原来的样貌,有些还带着开发界面;它们是创作阶段的记录,不是最终版本的其他机位。影片与封面使用实际引擎渲染画面;图像生成工具则用于概念研究及项目中的部分画面。

Artwork / 创作
Boyan Peng
Tools / 工具
Three.js · p5.js · Blender · Tripo · OpenAI image generation · OpenAI Codex · Web Audio API · Suno
Music / 配乐
“Weightless Glow” 1 & 2 — raphaelcc, generated with Suno.
Whale / 鲸
The current visible whale is Tripo-generated, with a rig, custom materials and procedural animation.当前可见的鲸由 Tripo 生成,结合骨架、自定义材质与程序化动画。
Humpback Whale (Swimming) — Connlan_Immure, CC BY 4.0. Used in the earlier whale system shown in the archive; the legacy asset remains in the project’s base/fallback pipeline.用于档案所示的早期鲸系统;旧资产仍保留在项目的基础/回退流程中。
Water / 水体基础
WebGL Water — Evan Wallace, © 2011, MIT. Includes adapted simulation and caustic techniques; original notices are retained.包含改编的模拟与焦散技术,保留原始许可声明。