◀ VibeCruiser

apso particle morph

A free animation — play it in your browser, no install. 文字粒子形变引擎:整行文字粒子溶解→空场→重组。含 4 个逐像素验证工具。. 在线试玩:→ funiyayue-art.github.io/apso-particle-morph 单文件版:Bold | Regular —— 保存到本地双击即开,无需构建、无网络依赖 大部分「文字形变」的 CSS 教程给你的是表象:一个遮罩扫过去,一个 blur 拉起来。 真正难的三个问题,这个仓库正面处理并提供了验证工具: 页面内有三个滑块(变形时长 / 粒子格 / 飞散幅度)和一个暂停按钮, 左下角实时显示 fps、粒子数、渲染分辨率。 改文案:编辑 src/config.json 里的 texts.A…

by @funiyayue-art · funiyayue-art/apso-particle-morph on GitHubLANG PythonHOSTED ON FUNIYAYUE-ART.GITHUB.IOUPDATED 15 Oct 2026

Vote and save it — continue with GitHub or sign in free

Made this, @funiyayue-art? See how many people played it → or use email

▶ Play full screen ▲ Vote with GitHub ▲ Vote with email

GitHub asks to share your profile and email with us. We never post anything.

Open the live demo Source on GitHub

From the README

在线试玩:→ funiyayue-art.github.io/apso-particle-morph 单文件版:Bold | Regular —— 保存到本地双击即开,无需构建、无网络依赖

大部分「文字形变」的 CSS 教程给你的是表象:一个遮罩扫过去,一个 blur 拉起来。 真正难的三个问题,这个仓库正面处理并提供了验证工具:

页面内有三个滑块(变形时长 / 粒子格 / 飞散幅度)和一个暂停按钮, 左下角实时显示 fps、粒子数、渲染分辨率。

改文案:编辑 src/config.json 里的 texts.A / texts.B 和 glyphs(逐字中心/字号/纵向偏移)。

粒子属性(位置/尺寸/飞散系数/抖动系数)全部预计算成 Float32Array, 每帧只做乘加,最后一次 beginPath/rect/fill 描边所有粒子。

实测 1600 粒子 × 60 帧:29ms → 5ms(5.41×)。 关键在于 globalAlpha 和 fillStyle 实际上全场同值(不依赖粒子序号),逐粒子设置纯属浪费。

单一进度 v ∈ [0,1] 驱动,两段物理上不可能重叠:

踩过的坑:早期版本实心层用 pr 驱动、粒子层用 1-pr 驱动。 第一个周期两者恰好同步所以测试全过,第二个周期时钟翻转才暴露 bug。 有周期的系统,只验一半等于没验。

Read the full README on GitHub →

Built something like this? Submit your vibe — free account, takes a minute. How listing works.

More like this

Made this?

Claim it: create a free account, then press CLAIM THIS in the cruiser. Put the badge below in your README or on your demo page first; that link is how we know it's yours.

Your project is on the cruise, loaded live from your own site. Put the badge in your README or on the demo page: it shows your live play count, it links back to this page, and everyone who lands here is one click from running the real thing.

On VibeCruiser

How listing, the badge and claiming work →