Sand 是一款在网页浏览器中运行的免费沙子模拟器。 它会用几十万颗细小的沙粒铺满整个屏幕,你可以用手指推动沙子、倾斜手机让它滑动,或者摇一摇把沙粒撒开。它使用 WebGL2 和 JavaScript 开发,手机、平板和台式电脑都能玩,无需下载。
它不是一款有关卡或分数的游戏,而是一个让人平静的数字玩具,有点像禅意沙盘,玩起来却出乎意料地停不下来。下面会介绍玩法、各个选项的作用、几个画出更好看图案的技巧,并简单聊聊它为什么感觉如此真实。
Sand 速览
| 是什么 | 超写实沙子模拟器(解压玩具,没有关卡) |
| 在哪玩 | 任意现代浏览器打开 av.github.io/safe-sand |
| 价格 | 网页版免费 |
| 设备 | 手机、平板和台式电脑 |
| 手机操作 | 拖动画线,倾斜让沙滑动,摇晃把沙撒开 |
| 电脑操作 | 鼠标拖动推沙,方向键或 WASD 倾斜,按住空格键(Space)摇晃 |
| 开发技术 | WebGL2 和 JavaScript,在显卡芯片上进行模拟 |
| 源代码 | GitHub |
Sand 怎么玩
打开页面后,你会看到一张小小的开始卡片。选好沙子,再选沙子“下面”铺的是什么,然后点 Pour(倒沙)。

- 选择沙子类型: River、Beach、Desert、Volcanic 或 Coral。每种都有自己的配色,从灰色的河沙砾到深色火山沙,再到浅色珊瑚沙。
- 选择沙子下面的底面: Light、Lock screen 或 Screen off。这会改变沙粒所在的表面。
- 点 Pour。 在 iPhone 上,系统询问时请允许访问运动数据,否则倾斜功能无法使用。
- 开始玩。 用手指在沙子里划出沟槽,倾斜手机让沙子滑动,摇一摇把沙粒甩开,或者把手机翻过来屏幕朝下,看沙子掉落。

在电脑上,你用鼠标代替手指,用方向键或 WASD 倾斜虚拟沙盘,按住空格键摇晃。沙子的反应完全一样,不过作者是为手机版设计的,因为运动传感器能让沙子回应你真实的手部动作。
在手机上实现真正的全屏
浏览器地址栏会占用空间。想要完整体验,可以把页面添加到主屏幕:iOS 上点 Share → Add to Home Screen(分享 → 添加到主屏幕),Android 上点 Install app(安装应用)。之后它会像应用一样全面屏打开。
这款沙子模拟器为什么感觉这么真实
你可能玩过的大多数浏览器沙子游戏都使用网格:每个像素是一个“格子”,可以是沙、水或空白,简单的规则让它一步一步往下移动。这种方式很适合搭建和混合,但沙子看起来像像素。Sand 走了另一条路,它试图还原真实的沙子。

根据项目在 GitHub 上的说明:
- 每一颗沙粒都被模拟。 大约 100,000 到 460,000 颗独立沙粒同时在显卡芯片(GPU)上运动。
- 真实单位。 模拟以毫米为单位,采用真实重力(9.81 m/s²),所以沙子的速度和轻微的滞后感都符合你对真沙的预期。
- 每颗沙粒都不一样。 沙粒有各自的大小、矿物颜色和摩擦力。松散的沙粒会滚动、蹦跳,而一大堆沙会保持不动,直到你倾斜超过它的休止角(angle of repose),也就是沙堆在滑落前能保持的最陡坡度。
- 光影效果。 应用每一帧都会生成沙堆的高度图,带来坡面、自阴影和褶皱处柔和的明暗。光照方向跟随手机倾斜,所以你移动时阴影会拉长,石英颗粒会闪光。
- 声音来自沙子本身。 沙沙声由每秒数千个细小的咔嗒声组成,取决于实际在动的沙子有多少。小石子发出的咔嗒声更低沉。没有东西在动时,就完全安静。

还有一个细节能看出它对真实感的追求:旋转手机时画面不会跟着转。沙子固定在玻璃上,就像真实沙盘里的沙子一样。
沙子类型与底面对比
| 沙子类型 | 外观 | 适合 |
|---|---|---|
| River | 灰褐色沙砾,夹杂小石子 | 深而清晰的沟槽 |
| Beach | 明亮温暖的浅褐色 | 柔和、平静的图案 |
| Desert | 橙红色沙粒 | 在浅色底面上形成强烈色彩对比 |
| Volcanic | 深灰到黑色 | 锐利线条和浓重阴影 |
| Coral | 非常浅,几乎是白色 | 细腻、低调的漩涡 |
“沙子下面”选项会改变沙粒所在的表面:Light、Lock screen 或 Screen off。用同一种沙子分别试试,看看你最喜欢哪种效果。

画出更漂亮沙画的 7 个技巧
- 倒沙后等一秒。 先让沙粒落定再画,否则线条会被重新填平。
- 慢慢画,边缘更干净。 手指慢慢划会留下清晰的沟槽和整齐的沙壁;快速一扫则会把沙子甩到两边。
- 小幅度倾斜。 倾斜到沙子刚开始移动的位置,再把手机放平。用这种方法可以引导整片沙丘。
- 摇一摇重来。 用力一摇,沙子就会重新铺成均匀的一层,方便下一次作画。
- 画画选火山沙。 浅色底面上的深色沙最能显出线条和阴影。
- 戴上耳机打开声音。 声音来自正在移动的沙粒,你能听出缓慢滑动和突然崩塌的区别。
- 觉得卡顿就检查低电量模式。 在 iPhone 上,低电量模式(Low Power Mode)会把浏览器限制在每秒 30 帧。应用能检测到这一点,不会因此减少沙子,但关闭低电量模式可以恢复完整帧率。

如果运行很慢
应用会自动调整画质。如果连续两秒帧率偏低,它会先逐级降低屏幕清晰度,之后才减少沙粒数量,并会记住这个档位供下次使用。所以在旧手机或没有强力显卡的笔记本上,沙子看起来可能会稍微模糊一点,但依然能流畅移动。本文截图是在使用软件渲染图形的电脑浏览器中截取的,所以有些区域看起来略有块状感。
落沙游戏简史
沙子玩具在浏览器中流行了大约二十年:
- 2005 年: 日本一个博客上的 Java 小程序让这个类型流行起来。后来的扩展版本“Falling Sand Game”为整个类型命名。
- 2007 年: Powder Game 在玩法中加入了液体模拟。
- 2010 年: The Powder Toy 为电脑玩家带来了液体和牛顿引力。
- 2019 年: Sandspiel 证明了沙子玩具可以借助编译为 WebAssembly 的 Rust 和 WebGL 在浏览器中快速运行。作者在他的文章中解释,每种元素都在网格上遵循非常简单的规则,乐趣来自相邻元素之间的互动。
- 2020 年: Nolla Games 的 Noita 于 10 月 15 日结束抢先体验。这是一款动作 Roguelite 游戏,用工作室的话说,“每一个像素都经过物理模拟”。
Sand 是这个大家族中的另一个分支。它不在像素网格上放很多种元素,而是专注于一种材质:以毫米计量的真实沙粒,以及双手捧着沙盘的感觉。
网页游戏开发者能从中学到什么
- WebGL2 足以承担重度模拟。 几十万个粒子在普通浏览器标签页中运行,不需要原生应用。
- 善用传感器。 通过设备运动数据实现倾斜和摇晃,能让玩具更有实体感。注意 iOS 会请求权限,所以要在按钮点击时启动传感器。
- 自适应画质,不要靠猜。 测量帧时间,检查浏览器是否只是限制了帧率,然后小步降低画质并记住结果。
- 声音应跟随模拟。 根据实际运动生成的音频,比循环播放的音效样本听起来更自然。
- 部署保持简单。 这个项目没有构建步骤:任何静态文件服务器都能托管。
常见问题
Sand 沙子模拟器免费吗?
免费。av.github.io/safe-sand 上的网页版可以直接在浏览器里玩,无需下载或注册账号。
Sand 能在电脑上玩吗?
可以。用鼠标拖动推沙,用方向键或 WASD 倾斜,按住空格键摇晃。手机版因为使用运动传感器,手感更自然。
为什么我的 iPhone 倾斜没反应?
iOS 需要你授权才能把运动数据分享给网页。点 Pour,在弹出提示时允许访问运动数据即可。
Sand 是有关卡的游戏吗?
不是。它是一个解压的沙盒玩具,没有分数、计时或目标,你只需要画、倾斜和摇晃。
什么是落沙游戏?
这是一类模拟游戏,大量细小粒子(例如沙、水或火)遵循简单的物理规则并相互作用。Powder Game、The Powder Toy 和 Noita 都是知名例子。
Sand 模拟了多少颗沙粒?
据作者介绍,大约 100,000 到 460,000 颗,具体取决于你的设备。




