Rust 编译为 WebAssembly 的交互式演示
实时分形渲染 —— 在 WASM 中执行密集数学计算
计算Rust 实现 8 次幂分形光线步进 —— WebGL 渲染
WebGL分形噪声实时生成无限地图,海拔着色与山体阴影
程序生成不用 GPU,在 CPU 上完成变换、剔除、光栅化和深度测试
图形管线蒙特卡洛路径追踪:反射、折射、柔和阴影和颜色渗透,采样越多越清晰
全局光照按相邻规则逐格坍缩,从样例图生成无限变化的地图
约束传播10 万行数据由 WASM 排序与过滤 —— 虚拟滚动
数据处理递归回溯生成迷宫,A* 与 Dijkstra 逐步搜索最短路径动画
图算法素数筛、递归、排序、矩阵乘法 —— 同一算法两种语言现场跑分
性能同一算法的标量版和 128 位 SIMD 版现场跑分,并校验结果一致
SIMD 指令Bowyer-Watson 三角剖分与 Voronoi 图,还能把图片变成低多边形
计算几何精确覆盖 + 舞蹈链,对比朴素回溯的搜索节点数
回溯搜索5 种实时滤镜(模糊、边缘检测、浮雕……)—— 在 WASM 中逐像素处理
图像处理WebRTC 摄像头 → WASM 像素处理 → 30fps 实时滤镜
WebRTC手写快速傅里叶变换,实时显示波形、频谱与时频图
信号处理8 复音减法合成器,WASM 在 AudioWorklet 音频线程里实时发声
AudioWorklet动态规划找像素缝,缩放图片时人物和建筑不变形
动态规划颜色转换、DCT、量化、Huffman 编码,逐块看有损压缩
有损压缩每个演示都是独立编译的 .wasm,页面只下载自己用到的代码。
项目是一个 Cargo workspace:每个演示都是一个独立的 Rust crate,按类别放在 crates/<类别>/<演示>/,由 wasm-pack 各自编译成一个 .wasm 并生成 JS 胶水代码。每个页面只下载自己的那一个,大多在 15~45 KB(gzip 后 6~25 KB)。多个 crate 共用的小工具(如随机数生成器)放在 crates/common,编译时静态链接进各自的 .wasm。
atomics 重新编译标准库,并要求服务器返回跨源隔离的响应头;音频合成器不用 wasm-bindgen,要在 AudioWorklet 里直接实例化。放在同一个包里,这些要求会波及所有页面;分开后只影响自己那一页,多线程版不可用时光线追踪还能退回单线程构建。.wasm 都带一份 Rust 运行时(内存分配、panic 处理),所有包加起来比合并时大;但每个页面只下载自己的,而且一个页面出问题不会连累其他页面。曼德博集合、图像滤镜、曼德博球、WebGPU 初始数据、性能对比、音频频谱、噪声地形、二维码、数据压缩、手写识别、Markdown、JPEG、数独
纯函数,输入参数,返回结果。
数据表格、生命游戏、粒子物理、迷宫寻路、流体模拟、文件哈希、落沙游戏、五子棋、光栅化、光线追踪、SIMD 对比、合成器、CHIP-8、智能缩放、波函数坍缩、布料、三角剖分
数据保存在 WASM 内存中的全局变量 static Mutex<Option<T>> 里,JS 通过「初始化 + 修改 + 读取」一组函数来操作它,不必每次都传递全部数据。
提示每个演示页面底部都有该示例的详细原理说明。