Nocturnal Dream
Nocturnal Dream 把一场清醒梦做成了一次停不下来的缩放。访客往下滚,镜头从湖边的乌鸦退进教堂,钻过锁孔走上街道,再升到城市上空,一直缩进地球、原子和细胞。访客滚过细胞之后,镜头又从乌鸦的眼睛里飞回湖边,这场梦因此没有尽头。一路上的每一样东西都是奶油色纸上的黑色线描,每一段都贴着一行像贴纸一样的大字,在和做梦的人说话。
这个站出自乌克兰的 UI/UX 设计师 Liubomyr Ulytskyi,拿到了 FWA 的当日站。

01概念
Nocturnal Dream 不卖任何东西,它是一件个人的实验作品。页面的标题问访客还记不记得自己上一个梦。站点的简介写着醒醒,你在做梦,这是一场可以互动的清醒梦,往深处滚,往近处看。右上角的 GET IN TOUCH 通向设计师自己的 LinkedIn 页面。
这场梦开始之前,访客要先等它加载完,加载画面是一片黑底,正中贴着一行大字 LET ME SHOW WHAT A REAL LUCID DREAMING LOOKS LIKE。大字下面的一行小字请访客慢慢闭上眼睛,梦还在加载,先别醒。加载完成后,下面才出现 SOUND ON 和 SOUND OFF 两个按钮,访客选一个,黑色的加载画面就像纸一样被撕开几个洞,露出底下的湖。湖边的芦苇丛里站着一只黑色的乌鸦,远处是一座水塔和一排低矮的山,画面中央贴着第一行标题 DO YOU REMEMBER YOUR LAST DREAM?。
整场梦一共 12 段,访客一直往下滚,镜头就一直往前推,场景一层套一层地换。湖边那一整幅画面原来装在教堂里的一颗水晶球里,镜头从球里退出来,走过一排排长椅,钻进一扇门上的锁孔。镜头出来时站在一条两旁是房子和枯树的街上,天上飘着几张写着 THE DAILY DREAM 的报纸。接下来镜头跳起来飞到城市上空,城市越变越小,最后成了一颗地球,地球之后是一个原子,原子之后是一个细胞。每一段都有一行自己的标题,像是梦里有一个声音在对访客说话,比如 THEY KNOW WE'RE AWARE OF THEM. BE QUIET. WE'RE GETTING OUT,又比如最后一段的 EVERYTHING IS WRITTEN. EVERYTHING BLEEDS TOGETHER.。

梦里还藏着一个找东西的游戏,访客按 F 打开的收藏柜里列着它的三个目标。第一个目标是靠光标在物体上找到一件隐藏的模块,第二个是靠滚动走完这场清醒梦,第三个是把六件模块都收集齐。六件模块藏在一路上的六样东西里,分别是湖边的乌鸦、教堂里的水晶球、铁吊灯和教堂的门、街上的老轿车,以及轨道上的地球。访客的光标划过画面会留下一道黑墨,只有墨迹底下才看得见钉在物体旁边的小标签,上面写着 PRESS AND HOLD TO DISCOVER。访客按住标签大约一秒,左上角跳出 MODULE HAS BEEN FOUND,这一件就进了收藏柜。
访客找到的每一件模块,在收藏柜里都有自己的一页。每一件都有一张卡片、一个慢慢转动的线框模型和一到三颗星的稀有度,旁边还有一段以迷失在自己故事里的作家口吻写的短文,比如乌鸦那一段说它是 THE ONLY WITNESS THAT NEVER BLINKED,唯一一个从不眨眼的目击者。六件都找齐之后,整个画面会黑白对调,满屏飘起彩色的纸屑。

右下角那只小乌鸦是离开这场梦的另一个出口,它所在的角落做得像游戏里的弹药角,旁边是一条标着章节号的进度条和一张转动的唱片,唱片是声音开关。访客按住小乌鸦一秒,就是朝乌鸦开枪,画面会被烧穿,然后跳到 404 页。404 页的标题写着 THIS PAGE WAS ONLY A DREAM,桌上摊着一副背面画着眼睛和乌鸦的牌,访客可以点一张来抽,也可以按 S 洗牌,按 H 回到梦里。页面上没有提到的还有一个 N 键,访客按一下,整个湖边就换成夜里的样子,天和水都变黑,乌鸦变成白色。

02设计
这个站的画面只用纸和墨两样东西。底色是一种略带黄的奶油色,像旧报纸,上面布满细小的黑色颗粒,所有的场景都是黑色的细线描,只在背光的一面铺一层浅浅的灰。教堂的砖墙、书架、长椅、街上的房子和城市里的高楼,都是这样一根一根线勾出来的轮廓,很少有整块的黑色。整块的黑留给了少数几样东西,湖边那只乌鸦是一个纯黑的剪影,所以它在满屏的细线里一眼就能认出来。
标题是这个站最鲜明的版面元素,每一行都像一张贴上去的贴纸。每一行字放在一个单独的黑色长条里,用的是一款极窄的黑体大写字 PP Formula Condensed Black,字是奶油色的。几行长条错落地叠在一起,再横着贴上几条半透明的黄色胶带,有的角翘起来,露出背面的白色底纸。标题的位置每一段都换,有的在正中,有的在左下角,有的压在画面底部。这些标题里有几处没校对到的文字,DID THEY MADE YOU FORGET IT AGAIN? 的语法错了,LOOK FIMILIAR DOESN'T IT? 拼错了 familiar,另一段的 LUCID DEAMING 少了一个 R。

场景里到处都是这种街头的小零碎。教堂里一只箱子上贴着 HELLO my name is 的名牌贴纸、一张圆形的 WAKE UP 和一张条形码标签,墙上是一个喷漆画的倒五芒星和山羊头,街上的报纸写着 THE DAILY DREAM 和 YOU ARE DREAMING,水塔上也印着字。这些贴纸、涂鸦和报纸把一场梦和一条真实的街道混在一起,贴纸一样的标题和它们是同一套东西。
界面文字换成了另一种声音,一款很小的等宽字 PP Supply Mono,全部大写,放在黑色的小方块里。每个方块前面都有一个画成键帽的字母,F TO OPEN STORAGE 和 G GET IN TOUCH 是这样,404 页上的 H BACK TO THE DREAM 也是这样,提示访客这些都可以用键盘按。收藏柜整个是深色的,网格、星级、坐标和短文都用这款等宽字排,像一台游戏机里的物品栏。
03动效
整场梦由滚动推着走,滚到哪里,镜头就停在哪里。访客往回滚,镜头也会倒着退回去,所以访客可以在任何一段停下来看,也可以来回滚动去找东西。段与段之间的过渡大多是镜头继续往前推,锁孔和城市都是这样被穿过去的。
每一段的标题都是滚到那里时才贴上去的。一行行黑色长条带着翘起来的角落出现在画面上,胶带横着压在字上。进门那一刻,黑色的加载画面也像纸一样撕成几块碎片散开。这种贴和撕的动作,和整个站像一本拼贴本的样子是一致的。
光标是这个站最主要的互动,它划过的地方都会洇开一道黑墨。墨迹边缘带着细小的颗粒,过一两秒就慢慢淡掉,光标旁边还一直跟着一张写着 SCROLL TO WAKE UP 的小标签。藏在物体旁边的标签只在墨迹底下显出来,墨一淡,标签就跟着消失,所以访客要在物体上来回涂抹才能找到它。
开枪那一下是整站最激烈的动效,整页画面会被烧穿。访客按住右下角的小乌鸦,旁边的圆环会一点点填满,填满时画面里的乌鸦就消失了。画面接着从中间烧出一个个洞,洞的边缘是一圈发亮的黄色火边,烧完之后,404 页从灰烬底下露出来。404 页上的那副牌先分成几叠,洗过一遍,再摊成一个扇形。
整页滚动大体顺畅,连续滚动两遍,平均都在每秒 58 到 59 帧。掉帧集中在教堂那一段,最慢时只有每秒 50 帧上下,站点这时会自动把渲染的分辨率调低一点,等帧率回来再调高。教堂之后的街道、城市和细胞都保持在每秒 60 帧。系统里打开减少动态效果的设置之后,站点不会有任何改变,撕开的加载画面、墨迹、烧穿的过渡都照样发生。
04工程
Nocturnal Dream 没有用任何现成的网站框架,代码是作者自己一块一块写的,画面交给 three.js 的 WebGPU 版本,用电脑的显卡实时渲染。按钮、标签和收藏柜是普通的网页元素,叠在画布上面,标题、贴纸和胶带则都是画在画布里的。站点的点击声和乌鸦叫声这类音效不是录音文件,而是浏览器现场合成出来的,所以这些音效不占下载量。
这场梦首次打开要下载约 5 MB,其中八成以上是三维模型,约 4.1 MB。最大的三个文件是一张桌子、那只乌鸦和一辆老轿车的模型,分别约 1.4 MB、1.2 MB 和 0.8 MB。站点自己的代码只有约 0.66 MB。访客选了 SOUND ON,站点才开始一边播放一边下载背景音乐,这段音乐约 4.6 MB,选 SOUND OFF 就不会下载。
加载画面出现得几乎是瞬间的,首次内容绘制只要 0.08 秒左右,远低于 Google 建议的 1.8 秒,这时画出来的是加载画面底部那个从 0 开始的数字。真正要等的是后面的预热,站点会在加载画面底下把 12 段场景都悄悄走一遍,让显卡提前准备好每一段要用的程序,这样访客滚动时就不会卡住。这段预热会长时间占住页面,三次打开里,声音按钮两次在十几秒内出现,有一次过了一分多钟才出现,那一次访客只能一直看着加载画面。整个加载过程里画面没有任何跳动,布局位移为 0。
只用键盘的访客走不进这场梦,最远只能停在湖边。访客按 Tab 键时,焦点只会停在 SOUND ON、SOUND OFF 和 GET IN TOUCH 三个地方。加载画面上的焦点框是深色的,压在黑底上几乎看不见。访客在 SOUND ON 上按回车可以进门,进门之后方向键、空格键和翻页键都推不动这场梦,Tab 键还会继续停在已经消失的那两个声音按钮上。F 键能打开收藏柜,方向键能在里面翻看,但找模块必须用光标涂墨,键盘做不到。
梦里的标题和那个声音说的话,读屏软件几乎一句都读不到。12 段标题都画在画布里,网页文字里只有界面上的按钮、物体旁的标签和收藏柜里的说明。首页还把语言声明成了乌克兰语,而页面上看得到的字都是英文,读屏软件可能会照乌克兰语的发音规则去念这些英文。
页面上还留着几个给作者自己用的按键。访客按下 P 键,站点会把当前画面重新渲染成一张 3840 × 1890 的大图并直接下载到访客的电脑上,屏幕上弹出一行乌克兰语的提示 Завантажено,意思是已下载。访客连续打出 WINNER 这个词,站点就会跳过整个寻找游戏,直接播放找齐六件之后的结局。这几个按键在页面上都没有说明,访客多半是误按才会碰到。
05评分与团队
| 奖项 | 出处 | 日期 | 分数 |
|---|---|---|---|
| FWA of the Day | The FWA | 2026-10-07 | 84 POINTS |
Nocturnal Dream 在 FWA 上得了 84 分,拿到了当日站,FWA 把它归进实验、好玩可玩和其他三个类别。这个站正属于这三类,站上没有出现任何品牌或客户的名字,也没有要卖的东西,访客能做的就是在梦里滚动和找东西。团队写在 FWA 上的说明是一段对访客说的话,大意是你以为自己醒着,其实只是在对噪音做出反应,而一个用大写字母写成的 IT 要把你从恍惚里拉出来,带你看清真实。这段话和站上那些对着做梦的人说话的标题是同一种口吻。
| 署名 | 身份 | 战绩 |
|---|---|---|
| Liubomyr Ulytskyi | 乌克兰的 UI/UX 设计师,在 FWA 上自我介绍以客户为导向,专注于为客户解决问题,做好看又好用的界面 | FWA 4 |
战绩是截至写报告时的累计数,这个站只署了 Liubomyr Ulytskyi 一个人的名字,站上也没有别的署名。这位设计师在 2026 年已经拿了四次 FWA 当日站,分别在 4 月、7 月、9 月和这一次的 10 月,几乎每两三个月就有一件作品获奖。
06档案
- 获奖日期
- 2026-10-07
- 奖项
- The FWA FOTD 2026-10-07
- 站点
- https://www.nocturnaldream.com/
- 署名
- Liubomyr Ulytskyi
- 设计取向
- cinematic
- 技术路线
- scroll
- The FWA
- 84 POINTS,DAYS 6。https://thefwa.com/cases/nocturnal-dream
- 技术栈
- three.js r169(WebGPU),原生 ES 模块,Web Audio
- 资产总计
- 首次打开约 5 MB,其中三维模型约 4.1 MB,打开声音后再边播边下约 4.6 MB 音乐
- 首屏与帧率
- FCP 76–84 ms(加载画面的数字),声音按钮通常十几秒出现,有一次超过一分钟,CLS 0。连续滚动 58–59 fps