lottery
🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀
Three.quarks is a general purpose particle system / VFX engine for three.js
three.quarks is a high-performance particle system and visual effects library for three.js, written in TypeScript.
Create stunning real-time VFX for games, interactive experiences, and web applications with an intuitive API and powerful visual editor.
▶️ Launch Live Demo - See three.quarks in action with interactive examples!
| Resource | Description | |
|---|---|---|
| 📖 | Documentation | Official website and guides |
| 🎨 | Visual Editor | WYSIWYG particle effect creator |
| 💬 | Discord | Community support and discussion |
npm install three.quarks
import * as THREE from 'three';
import {
BatchedRenderer,
ParticleSystem,
ConstantValue,
IntervalValue,
ConstantColor,
PointEmitter,
RenderMode
} from 'three.quarks';
// 1. Create the batch renderer (manages all particle systems)
const batchRenderer = new BatchedRenderer();
scene.add(batchRenderer);
// 2. Define your particle system
const particles = new ParticleSystem({
duration: 2,
looping: true,
startLife: new IntervalValue(1, 2),
startSpeed: new ConstantValue(5),
startSize: new IntervalValue(0.1, 0.3),
startColor: new ConstantColor(new THREE.Vector4(1, 1, 1, 1)),
maxParticle: 100,
emissionOverTime: new ConstantValue(20),
shape: new PointEmitter(),
material: new THREE.MeshBasicMaterial({
map: yourTexture,
transparent: true
}),
renderMode: RenderMode.BillBoard
});
// 3. Add to scene and renderer
scene.add(particles.emitter);
batchRenderer.addSystem(particles);
// 4. Update in your animation loop
function animate() {
const delta = clock.getDelta();
batchRenderer.update(delta);
renderer.render(scene, camera);
requestAnimationFrame(animate);
}
Export effects from the visual editor and load them at runtime:
import { QuarksLoader, QuarksUtil, BatchedRenderer } from 'three.quarks';
const batchRenderer = new BatchedRenderer();
const loader = new QuarksLoader();
loader.load('effects/explosion.json', (effect) => {
QuarksUtil.addToBatchRenderer(effect, batchRenderer);
scene.add(effect);
});
scene.add(batchRenderer);
// Clone and play the effect multiple times const instance = loadedEffect.clone(); scene.add(instance); QuarksUtil.addToBatchRenderer(instance, batchRenderer); QuarksUtil.setAutoDestroy(instance, true); // Auto-cleanup when finished QuarksUtil.play(instance);
Use the quarks.r3f package for declarative React integration:
npm install quarks.r3f three.quarks
import { Canvas } from '@react-three/fiber'
import { QuarksProvider, ParticleSystem } from 'quarks.r3f'
import { ConeEmitter, SizeOverLife, PiecewiseBezier, Bezier, RenderMode } from 'three.quarks'
function FireEffect() {
const shape = useMemo(() => new ConeEmitter({ angle: 0.3, radius: 0.2 }), [])
const behaviors = useMemo(() => [
new SizeOverLife(new PiecewiseBezier([[new Bezier(1, 0.5, 0.2, 0), 0]]))
], [])
return (
<ParticleSystem
duration={5}
looping
startLife={[1, 2]}
startSpeed={[2, 4]}
startSize={0.5}
startColor={{ r: 1, g: 0.5, b: 0.2, a: 1 }}
emissionOverTime={40}
shape={shape}
renderMode={RenderMode.BillBoard}
behaviors={behaviors}
position={[0, 0, 0]}
autoPlay
/>
)
}
function App() {
return (
<Canvas>
<QuarksProvider>
<FireEffect />
</QuarksProvider>
</Canvas>
)
}
See quarks.r3f documentation for full API reference.
Browse the examples folder or run locally:
npm install npm run build npm run examples
This project is a monorepo with modular packages:
| Package | Description |
|---|---|
| three.quarks | 🎯 Main package - Three.js particle system with batched rendering, shaders, and full VFX toolkit |
| quarks.core | 🧱 Core library - Framework-agnostic math, behaviors, emitter shapes, and functions (zero dependencies) |
| quarks.r3f | ⚛️ React Three Fiber - Declarative R3F components with hooks, Suspense support, and flexible props API |
| quarks.nodes | 🔮 Node system - Experimental node-based VFX with visual programming and WebGPU compute support |
| quarks.examples | 🎮 Examples - Interactive demos showcasing particle effects and features |
| quarks.playground | 🧪 Playground - Development sandbox for testing and experimenting with effects |
MIT
more like this
🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀
🎥🤟 8 minimalistic templates for tfjs mediapipe handpose and facemesh
A repository about starting from scratch for monorepo, fastify, Phaser, colyseus, and threejs.
search projects, people, and tags