
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
proton-engine
Advanced tools

Proton is a lightweight and powerful Javascript particle animation library. Use it to easily create a variety of cool particle effects.
Check out examples at http://drawcall.github.io/Proton/. The 3D version of the proton engine is here here. An available react version is here.
react, vue, angular, and pixi.js, Phaser, etc.CanvasRenderer - Proton's canvas rendererDomRenderer - Proton's dom renderer, supporting hardware acceleration.WebGLRenderer - Proton's webgl renderer.PixelRenderer - Proton's pixel renderer, It can implement pixel animation.EaselRenderer - Easeljs proton renderer.EaselRenderer - Pixi.js proton renderer.CustomRenderer - Use a custom renderer that can be applied to any scene.See detailed documentation please visit https://projects.jpeer.at/proton/. Thank you very much @matsu7089 for writing a good tutorial.
Note: NPM package-name has been changed from
proton-jstoproton-engine
npm install proton-engine --save
import Proton from "proton-engine";
<script type="text/javascript" src="js/proton.web.min.js"></script>
Proton is very simple to use, a dozen lines of code can create a particle animation.
import Proton, {
Emitter,
Rate,
Span,
Radius,
Life,
Velocity,
Color,
Alpha,
CanvasRenderer,
} from "proton-engine";
const proton = new Proton();
const emitter = new Emitter();
//set Rate
emitter.rate = new Rate(new Span(10, 20), 0.1);
//add Initialize
emitter.addInitialize(new Radius(1, 12));
emitter.addInitialize(new Life(2, 4));
emitter.addInitialize(new Velocity(3, new Span(0, 360), "polar"));
//add Behaviour
emitter.addBehaviour(new Color("ff0000", "random"));
emitter.addBehaviour(new Alpha(1, 0));
//set emitter position
emitter.p.x = canvas.width / 2;
emitter.p.y = canvas.height / 2;
emitter.emit(5);
//add emitter to the proton
proton.addEmitter(emitter);
// add canvas renderer
const renderer = new CanvasRenderer(canvas);
proton.addRenderer(renderer);
Proton.Span (or Proton.getSpan) is a very important concept of the Proton engine, it's everywhere. If you understand its usage, you can create almost any desired effect!
If you want to create wind, rain, or snow, etc, you can use the emitter.preEmit method to pre-render the scene.
Use Proton.Body and Proton.Color at the same time. I suggest you'd better use the WebGLRenderer not CanvasRenderer.
Added Proton.Cyclone behavior, you can make vortex effects with Cyclone. Demo please check here.
proton.fps In modern browsers, if the FPS exceeds 60 and you want to maintain a stable 60 FPS, you need to set proton.fps = 60. You can set this property when the game engine has fixed fps or some browsers have a higher refresh rate.
Use Euler integration calculation is more accurate (default false) Proton.USE_CLOCK = false or true;.
Proton has now been upgraded to the v4 version. Performance has been greatly improved and api also has some improvements. For more details, please check here.
node is a dependency, use terminal to install it with:
git clone git://github.com/drawcall/Proton.git
...
npm install
npm run build
And run example
npm start
//vist http://localhost:3001/example/
Detailed changes for each release are documented in the release notes.
Proton is released under the MIT License. http://www.opensource.org/licenses/mit-license
FAQs
Proton is a simple and powerful javascript particle animation engine.
The npm package proton-engine receives a total of 2,314 weekly downloads. As such, proton-engine popularity was classified as popular.
We found that proton-engine demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.