
Matter.js
Skill用 Matter.js 实现 2D 物理交互:搭建 Engine、Render、Runner 与刚体,按需加入鼠标拖拽约束,并给出单页应用中停止运行、移除画布的清理步骤;需求不明时先问清画布尺寸与渲染方式。
name: matterjs
description: Use when implementing 2D physics interactions with Matter.js, including Engine/World setup, Render/Runner configuration, adding bodies and constraints, and scroll/interaction-friendly canvas scenes.
Matter.js Skill
Workflow
- Confirm environment (plain HTML, React, or canvas-only) and rendering approach (Matter.Render for debug vs custom renderer).
- Provide a minimal Engine/World/Render/Runner setup and add bodies.
- Add interactions (mouse constraint) or constraints only if requested.
- Share cleanup steps for SPA or teardown scenarios.
Minimal setup
<script>
const { Engine, Render, Runner, Bodies, Composite } = Matter;
const engine = Engine.create();
const render = Render.create({
element: document.body,
engine: engine,
options: {
width: 800,
height: 600,
wireframes: false
}
});
const runner = Runner.create();
Runner.run(runner, engine);
Render.run(render);
const ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true });
const box = Bodies.rectangle(400, 200, 80, 80);
Composite.add(engine.world, [ground, box]);
</script>
Common patterns
- Use
Composite.add(engine.world, [...])to add bodies to the world. - Use
Render.create({ element, engine })to create a canvas automatically, or pass acanvasyou create yourself. - Set
render.options.wireframes = falsefor solid rendering. - Use
Runner.run(runner, engine)for a simple loop, or callEngine.updatein your own loop if you need custom timing.
Mouse interaction (optional)
const { Mouse, MouseConstraint } = Matter;
const mouse = Mouse.create(render.canvas);
const mouseConstraint = MouseConstraint.create(engine, { mouse });
Composite.add(engine.world, mouseConstraint);
render.mouse = mouse;
Cleanup checklist (SPA)
- Stop the runner with
Runner.stop(runner). - Remove the render canvas from the DOM.
- Clear engine and world if needed.
Questions to ask when specs are missing
- What viewport size and scaling should the canvas use?
- Are we using Matter.Render or a custom renderer?
- Do you want mouse/touch drag interaction?
- Should the simulation loop be paused when offscreen?
相关资源

Scroll World
Skill为任意品牌制作滚动驱动的「穿越 3D 世界」落地页:访谈主题、品牌与镜头风格,用 Higgsfield 生成场景图,用 Monid(Seedance 2.0,按片段付费)或 Higgsfield 积分生成无缝衔接的镜头视频,再接入框架无关的滚动播放引擎。需要 Higgsfield CLI 与 ffmpeg,会产生费用。
oso95/scroll-world10.9k
WebGL Landing Steering
Skill在制作以 WebGL 为主视觉的落地页前先定方向:按品牌调性与页面类型在四种视觉路线中选一种,过信息、性能、无障碍、稳定性四道关,先做静态降级再增强,输出推荐路线、视觉规格、技术栈与构建顺序。
MengTo/Skills7.3k
Cobe.js
Skill用轻量 WebGL 库 cobe 在首页或关于页加入可旋转的地球,讲解画布按设备像素比设置尺寸、位置标记、旋转动画、窗口缩放后重建与销毁,可在 React/Next.js 中集成。
MengTo/Skills7.3k
GSAP ScrollTrigger Storytelling
Skill用 GSAP ScrollTrigger 搭建滚动叙事式产品页:固定主画面,随滚动逐步揭示界面状态、功能层与数据视图,区块之间用缩放、遮罩或模糊过渡;要求及时清理触发器、小屏简化编排、不遮挡文字与按钮。
MengTo/Skills7.3k
Masked Reveal
Skill用 GSAP ScrollTrigger 让标题与短文案在进入视口时逐词从遮罩下方升起,提供不依赖付费 SplitText 插件的拆词代码、默认时长与错峰、React 清理写法,保留 aria-label 并支持减少动态效果。
MengTo/Skills7.3k
Animation On Scroll
Skill用 IntersectionObserver 加 Tailwind 任意值动画类实现元素进入视口时的入场动画,给出关键帧与观察器代码片段,可调整触发阈值、rootMargin、时长、延迟以及是否只播放一次。
MengTo/Skills7.3k