Try our Chrome extension
Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!Changedetection.io needs your support!
You can help us by supporting changedetection.io on these platforms;
- Rate us at AlternativeTo.net
- Star us on GitHub
- Follow us at Twitter/X
- G2 Software reviews
- Check us out on LinkedIn
- And tell your friends and colleagues :)
The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
Many thanks :)
changedetection.io team
Ще ні секунд тому
False
Ще ні секунд тому
Тригерний текст Ігнорований текст Блокуючий текст
40 хвилин тому
Skip to content
Navigation Menu
Sign in Appearance settings
* Platform
+ AI CODE CREATION
o GitHub Copilot Write better code with AI
o GitHub Copilot app Direct agents from issue to merge
o MCP Registry Integrate external tools
+ DEVELOPER WORKFLOWS
o Actions Automate any workflow
o Codespaces Instant dev environments
o Issues Plan and track work
o Code Review Manage code changes
o Code Quality Enforce quality at merge
+ APPLICATION SECURITY
o GitHub Advanced Security Find and fix vulnerabilities
o Code security Secure your code as you build
o Secret protection Stop leaks before they start
+ EXPLORE
o Why GitHub
o Documentation
o Blog
o Changelog
o Marketplace
View all features
* Solutions
+ BY COMPANY SIZE
o Enterprises
o Small and medium teams
o Startups
o Nonprofits
+ BY USE CASE
o App Modernization
o DevSecOps
o DevOps
o CI/CD
o View all use cases
+ BY INDUSTRY
o Healthcare
o Financial services
o Manufacturing
o Government
o View all industries
View all solutions
* Resources
+ EXPLORE BY TOPIC
o AI
o Software Development
o DevOps
o Security
o View all topics
+ EXPLORE BY TYPE
o Customer stories
o Events & webinars
o Ebooks & reports
o Business insights
o GitHub Skills
+ SUPPORT & SERVICES
o Documentation
o Customer support
o Community forum
o Trust center
o Partners
View all resources
* Open Source
+ COMMUNITY
o GitHub Sponsors Fund open source developers
+ PROGRAMS
o Security Lab
o Maintainer Community
o Accelerator
o GitHub Stars
o Archive Program
+ REPOSITORIES
o Topics
o Trending
o Collections
* Enterprise
+ ENTERPRISE SOLUTIONS
o Enterprise platform AI-powered developer platform
+ AVAILABLE ADD-ONS
o GitHub Advanced Security Enterprise-grade security features
o Copilot for Business Enterprise-grade AI features
o Premium Support Enterprise-grade 24/7 support
* Pricing
Type / to search
Sign in
Sign up Appearance settings
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Uh oh!
There was an error while loading. Please reload this page.
pixijs / pixijs Public
* Uh oh!
There was an error while loading. Please reload this page.
* Notifications You must be signed in to change notification settings
* Fork 5.1k
* Star 48k
* Code
* Issues 293
* Pull requests 53
* Discussions
* Actions
* Projects
* Wiki
* Security and quality 0
* Insights
Additional navigation options
* Code
* Issues
* Pull requests
* Discussions
* Actions
* Projects
* Wiki
* Security and quality
* Insights
Releases: pixijs/pixijs
Releases Tags
Releases · pixijs/pixijs
Release list
* v8.19.0
* v8.18.1
* v8.18.0
* v8.17.1
* v8.17.0
* v8.16.0
* v8.15.0
* v8.15.0-rc
* v8.14.3
* v8.14.2
Previous Next
Jump to release
* v8.19.0
* v8.18.1
* v8.18.0
* v8.17.1
* v8.17.0
* v8.16.0
* v8.15.0
* v8.15.0-rc
* v8.14.3
* v8.14.2
Previous Next
v8.19.0
v8.19.0 Latest
Latest
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 04 Jun 08:21
v8.19.0
d93c5d3
💾 Download
Installation:
npm install pixi.js@8.19.0
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.19.0/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.19.0/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.19.0/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.19.0/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.19.0/docs/index.html
Changed
v8.18.1...v8.19.0
🚨 Behavior Change
* fix: Container.updateTransform honors zero scale (#12044) by @Zyie in #12046
+ Container.updateTransform({ scaleX: 0, scaleY: 0 }) previously coerced a zero scale to 1 (the code used opts.scaleX || 1), so passing 0 left the container at full size. It now applies zero scale literally, matching scale.set(0, 0). If you relied on updateTransform ignoring a zero scale, stop passing 0 when you mean full scale.
const container = new Container();
container.updateTransform({ scaleX: 0, scaleY: 0 });
// before: scale coerced to (1, 1) — container stayed full-size
// after: scale applied as (0, 0) — container hidden, matching scale.set(0, 0)
* fix: particle container inherit blend mode by @DmitriyGolub in #11978
+ ParticleContainer now respects the blend mode inherited from its ancestors. Previously the render pipe read the container's own local blendMode instead of the resolved groupBlendMode, so setting e.g. stage.blendMode = 'add' had no effect on particles. Particles nested under a parent with a non-default blend mode will now render differently (e.g. additive brightening) where they were silently ignored before. A blendMode set directly on the ParticleContainer is unchanged.
* fix: FillPattern tiling and radial gradient sizing by @Zyie in #12037
+ FillPattern gains a textureSpace option ('global' | 'local'), while fixing several long-standing pattern/gradient sizing bugs. textureSpace defaults to 'global', so patterns now tile continuously across adjacent shapes instead of remapping per shape; setTransform(matrix) now applies the matrix you pass directly (it previously inverted and rescaled it by the texture size); and textureSpace: 'local' radial gradients now scale to the gradient's outer radius. Existing pattern fills and local radial gradients can render differently.
If you hand-compensated for the old setTransform behavior (pre-inverting or scaling by texture size), remove that compensation. The legacy positional new FillPattern(texture, repetition) form still works.
import { Assets, FillPattern, Graphics } from 'pixi.js';
const texture = await Assets.load('pattern.png');
// new options-object constructor with explicit textureSpace
const pattern = new FillPattern({ texture, repetition: 'repeat', textureSpace: 'local' });
const g = new Graphics().rect(0, 0, 200, 100).fill({ fill: pattern });
🎁 Added
* feat: add HTML-in-Canvas texture support by @Zyie in #12053
+ A new opt-in pixi.js/html-source subpath renders live DOM elements into PixiJS textures while the element stays fully interactive in the browser (inputs editable, links clickable, CSS animations running). Use HTMLSource for a live element or ElementImageSource for an immutable snapshot. The element must be a direct child of the Pixi canvas. Importing the subpath also registers a lowest-priority Texture.from fallback for generic HTML elements, so it cannot affect apps that don't import it.
import { Application, Sprite } from 'pixi.js';
import { HTMLSource } from 'pixi.js/html-source';
const app = new Application();
await app.init({ resizeTo: window });
document.body.appendChild(app.canvas);
const form = document.createElement('form');
form.innerHTML = '<input value="still editable" />';
app.canvas.appendChild(form); // must be a direct child of the Pixi canvas
const sprite = Sprite.from(new HTMLSource({ resource: form, autoUpdate: true }));
app.stage.addChild(sprite); // live DOM mirrored to the GPU; the form stays interactive
* feat: implement transientAttachment for MSAA RenderTextures for WebGPU by @GoodBoyDigital in #12050
+ Texture sources gain an opt-in transient flag so the WebGPU backend can discard the MSAA buffer at the end of a render pass (storeOp: 'discard') instead of writing it back to memory, and keep MSAA contents in tile memory on TBDR mobile GPUs where GPUTextureUsage.TRANSIENT_ATTACHMENT is available. This cuts memory bandwidth for single-pass MSAA render targets. Only set it on antialiased textures that follow a single-pass-then-discard pattern; a later loadOp: 'load' on a transient attachment yields undefined contents. Default is false, so existing code is unaffected. A WebGPU-only renderer.device.extensions.transientAttachment probe reports device support.
🐛 Fixed
* fix: BitmapText trailing glyph after glyph-less word-break char by @Zyie in #12035
* fix: SplitText crash when text begins with whitespace (#12040) by @Zyie in #12041
* fix: TilingSprite tileRotation shears pattern on non-square sprites by @Zyie in #12062
* fix: canvas renderer does not round anchor offset when roundPixels is enabled by @Clonex in #12051
* fix: pass renderer's maxBatchableTextures to non-default batchers by @SerG-Y in #12029
* fix: handle null from getShaderSource/getShaderInfoLog on lost context (#12032) by @Zyie in #12042
* fix: GCSystem unload resources before nulling hash entry by @Zyie in #12038
🧹 Chores
* chore: bundle pixijs-skills and add sync workflow by @Zyie in #12045
+ Ships 25 PixiJS v8 AI agent skills under skills/ in the published npm package, available at node_modules/pixi.js/skills/ after install.
* chore: document blend mode resolution inheritance by @MFei8ht in #12067
* chore: restrict postMessage origin in playground for better security by @RinZ27 in #12055
* chore: bump @xmldom/xmldom from ^0.8.12 to ^0.8.13 by @Copilot in #12025
* chore: bump parse-svg-path by @bigtimebuddy in #12071
* chore: standardize graphics test naming and expand visual coverage by @Zyie in #12036
* chore: stabilize HTMLText visual tests against CI flakiness by @Zyie in #12039
* chore: pin node to 24.15.0 and update GitHub Actions by @Zyie in #12070
* chore: add missing path pattern to CODEOWNERS by @Copilot in #12027
New Contributors
* @RinZ27 made their first contribution in #12055
* @MFei8ht made their first contribution in #12067
* @Clonex made their first contribution in #12051
Full Changelog: v8.18.1...v8.19.0
Contributors
*
*
*
*
*
*
*
*
Clonex, bigtimebuddy, and 6 other contributors
Assets 39
* advanced-blend-modes.js
sha256:7ceccc2c793a8a64e54dae1d40e8756ba2342d216b223697ce1cc6ec9c712b3b
36.9 KB 2026-06-04T08:23:37Z
* advanced-blend-modes.js.map
sha256:a5591262ffb60888d37d7f95c751ef587644ad0c77f32a9a4252a787b4696de9
66 KB 2026-06-04T08:23:37Z
* advanced-blend-modes.min.js
sha256:b4ea340200647298cf8e2724ea2a235aa4fb0a6495c6f024d2b8809e86c74747
30.9 KB 2026-06-04T08:23:37Z
* advanced-blend-modes.min.js.map
sha256:a140392e8ec7af411a44769abe2e916d9cf1de5af8ffb2c41d8e100883d4f0f3
62.2 KB 2026-06-04T08:23:37Z
* gif.js
sha256:fe0f7990e1e5b726904a894ee3237971b9368cb047770b957e3bde9fb5b627df
44.3 KB 2026-06-04T08:23:37Z
* gif.js.map
sha256:7506b469ef77f9401d1a0337b586441bcd113257921ee9c7347833eb46479078
86.2 KB 2026-06-04T08:23:37Z
* gif.min.js
sha256:f880f91bd409b1f7d8f6c6c5fbcd88a9bbf7d27d27acbaca9f481bbc916c4309
14.6 KB 2026-06-04T08:23:37Z
* gif.min.js.map
sha256:5c164ee8b17a3f02afa72255352b23dfe265764576324d8146bedead7153db42
70.2 KB 2026-06-04T08:23:37Z
* html-source.js
sha256:52dd5f9e6b9395aced7fcf3c4cfdc04b5eda5b35ab39f953f4eabcef4b11e694
13.6 KB 2026-06-04T08:23:37Z
* html-source.js.map
sha256:7c4ec25fb1c3078c043ec2782e428ede06ca63e4d521bc9a9996209dd3d44388
33.8 KB 2026-06-04T08:23:37Z
* Source code (zip)
2026-06-04T08:04:53Z
* Source code (tar.gz)
2026-06-04T08:04:53Z
* Show all 39 assets Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 5 uwu-420, i0tool5, devgauravjatt, lizhiyu-me, and aroman reacted with thumbs up emoji 🎉 4 uwu-420, devgauravjatt, lizhiyu-me, and aroman reacted with hooray emoji ❤️ 4 uwu-420, devgauravjatt, lizhiyu-me, and aroman reacted with heart emoji 🚀 5 uwu-420, i0tool5, MtMath, devgauravjatt, and aroman reacted with rocket emoji
All reactions
* 👍 5 reactions
* 🎉 4 reactions
* ❤️ 4 reactions
* 🚀 5 reactions
6 people reacted
v8.18.1
v8.18.1
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 14 Apr 20:00
v8.18.1
8f42bb7
💾 Download
Installation:
npm install pixi.js@8.18.1
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.1/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.1/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.1/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.1/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.18.1/docs/index.html
Changed
v8.18.0...v8.18.1
🐛 Fixed
* fix: prevent error when using Application.domContainerRoot in Node.js by @UlyssesZh in #12017
Contributors
*
UlyssesZh
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 6 uwu-420, luckasnix, real-delex, i0tool5, meWho3000, and ArianDv-ps reacted with thumbs up emoji 🎉 2 uwu-420 and i0tool5 reacted with hooray emoji ❤️ 2 uwu-420 and ArianDv-ps reacted with heart emoji 🚀 2 uwu-420 and i0tool5 reacted with rocket emoji
All reactions
* 👍 6 reactions
* 🎉 2 reactions
* ❤️ 2 reactions
* 🚀 2 reactions
6 people reacted
v8.18.0
v8.18.0
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 14 Apr 14:57
v8.18.0
2c5818b
💾 Download
Installation:
npm install pixi.js@8.18.0
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.0/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.0/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.0/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.18.0/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.18.0/docs/index.html
Changed
v8.17.1...v8.18.0
🚨 Behavior Change
* fix: text.width and word wrap returning incorrect values by @Zyie in #12007
+ Text/HTMLText/BitmapText with wordWrap: true and non-left align (center/right/justify) now return the true rendered width from text.width instead of reporting wordWrapWidth. If you relied on text.width === wordWrapWidth for layout, use wordWrapWidth directly or wrap the text in a sized container.
const text = new Text({
text: 'hello',
style: { wordWrap: true, wordWrapWidth: 800, align: 'center' },
});
// before: text.width === 800
// after: text.width reflects the rendered string width
🎁 Added
* feat: add graphicsContextToSvg() for Graphics → SVG export by @GoodBoyDigital in #11989
+ Adds graphicsContextToSvg(source, precision?), a pure function that serializes a Graphics or GraphicsContext to a self-contained SVG string. Supports rects, circles, ellipses, rounded rects, polygons, bezier/quadratic/arc paths, strokes, holes (via fill-rule="evenodd"), and linear/radial gradients.
import { Graphics, graphicsContextToSvg } from 'pixi.js';
const g = new Graphics()
.rect(0, 0, 100, 50)
.fill({ color: 0xff0000 })
.circle(150, 25, 25)
.stroke({ color: 0x0000ff, width: 4 });
const svgString = graphicsContextToSvg(g, 2);
await navigator.clipboard.writeText(svgString);
* feat: add mask channel selection for sprite masks by @Zyie in #11987
+ setMask() gains a channel option ('red' | 'alpha') to pick which texture channel drives visibility, matching how design tools like Figma apply PNG masks. Default remains 'red'.
import { Assets, Sprite } from 'pixi.js';
const photo = new Sprite(await Assets.load('photo.png'));
const maskSprite = new Sprite(await Assets.load('mask-alpha.png'));
photo.setMask({
mask: maskSprite,
channel: 'alpha',
});
* feat: allow preference to accept an array of renderer types by @Zyie in #11963
+ autoDetectRenderer and Application.init now accept an array of renderer names for preference, letting you restrict the fallback chain (e.g. disable WebGPU entirely) rather than only reorder it. A new RendererPreference type is exported.
import { Application, autoDetectRenderer } from 'pixi.js';
const renderer = await autoDetectRenderer({
preference: ['webgl', 'canvas'],
});
const app = new Application();
await app.init({ preference: ['webgl', 'canvas'] });
* feat: provide a getter to the domElement via app.domContainerRoot by @carlos22 in #11974
+ Application exposes a read-only domContainerRoot getter returning the HTMLDivElement that wraps all DOMContainer elements, so apps can add CSS classes, inline styles, or customize the DOM overlay root.
import { Application } from 'pixi.js';
const app = new Application();
await app.init({ resizeTo: window });
app.domContainerRoot.classList.add('pixi-dom-layer');
app.domContainerRoot.style.pointerEvents = 'auto';
* feat: add width option to MeshRope by @mehmetcanakbay in #11990
+ MeshRope now accepts an explicit width for rope thickness, decoupling it from the texture's height. Omitting width preserves the previous texture.height default.
import { MeshRope, Point, Texture } from 'pixi.js';
const points = [new Point(0, 0), new Point(100, 50), new Point(200, 0)];
const rope = new MeshRope({
texture: Texture.from('snake.png'),
points,
width: 40,
});
* feat: add a default anchor to texture generation by @ksv90 in #12011
+ renderer.generateTexture() accepts a defaultAnchor option that's forwarded onto the produced Texture. RenderTexture.create() also gains a textureOptions parameter to pass through fields like defaultAnchor to the underlying Texture.
import { Graphics, Sprite } from 'pixi.js';
const shape = new Graphics().circle(0, 0, 50).fill(0xff3366);
const texture = app.renderer.generateTexture({
target: shape,
defaultAnchor: { x: 0.5, y: 0.5 },
});
const sprite = new Sprite(texture);
sprite.position.set(200, 200); // centered by default
🐛 Fixed
* fix: stroke-only Graphics masks now render correctly on Canvas renderer by @DmitriyGolub in #11979
* fix: skip _applyMipRange for single-mip textures (iOS 18.0–18.1) by @GoodBoyDigital in #11985
* fix: stale TextureMatrix when pooled textures reuse the same reference by @GoodBoyDigital in #11997
* fix: unhandled actions in GraphicsPath.transform() switch statement by @Zyie in #11996
* fix(VideoSource): avoid play/mediaReady recursion before video dimensions (#11133) by @satoren in #12009
* fix: text.width and word wrap returning incorrect values by @Zyie in #12007
* fix: handle literal < characters in parseTaggedText by @glennflanagan in #11972
* fix: move CanvasFilterSystem to the filters module by @Zyie in #12014
* fix: SplitText baseline mismatch when tagStyles used with lineHeight by @Zyie in #12008
* fix: TilingSprite.tilePosition divided by resolution when using Canvas renderer by @Zyie in #11957
* fix: move CanvasFilterSystem to filters module by @Zyie in #12014
* fix(VideoSource): avoid play/mediaReady recursion before video dimensions by @satoren in #12009
🧹 Chores
* chore: bump @xmldom/xmldom to 0.8.12 by @Zyie in #12016
New Contributors
* @mehmetcanakbay made their first contribution in #11990
* @DmitriyGolub made their first contribution in #11979
* @carlos22 made their first contribution in #11974
* @satoren made their first contribution in #12009
* @ksv90 made their first contribution in #12011
* @glennflanagan made their first contribution in #11972
Contributors
*
*
*
*
*
*
*
*
carlos22, GoodBoyDigital, and 6 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 4 uwu-420, i0tool5, meWho3000, and tontonsido reacted with thumbs up emoji 🎉 3 uwu-420, xevin, and i0tool5 reacted with hooray emoji ❤️ 2 uwu-420 and clark-stevenson reacted with heart emoji 🚀 4 uwu-420, luckasnix, i0tool5, and Julien-Marcou reacted with rocket emoji
All reactions
* 👍 4 reactions
* 🎉 3 reactions
* ❤️ 2 reactions
* 🚀 4 reactions
8 people reacted
v8.17.1
v8.17.1
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 16 Mar 09:23
v8.17.1
6e59c6f
💾 Download
Installation:
npm install pixi.js@8.17.1
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.1/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.1/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.1/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.1/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.17.1/docs/index.html
Changed
v8.17.0...v8.17.1
🐛 Fixed
* fix: compressed textures ignoring resolution from URL (e.g. @0.75x) by @Zyie in #11960
* fix: center-align text correctly when words exceed wordWrapWidth by @Zyie in #11966
🧹 Chores
* chore: fix BitmapFont char keys from char codes to character strings by @Zyie in #11967
* fix: add secrets: inherit to publish-switch workflow for S3 docs upload by @Zyie in #11962
Contributors
*
Zyie
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 4 luckasnix, uwu-420, i0tool5, and RizalMadani reacted with thumbs up emoji 🎉 2 uwu-420 and i0tool5 reacted with hooray emoji ❤️ 1 uwu-420 reacted with heart emoji 🚀 3 uwu-420, i0tool5, and Julien-Marcou reacted with rocket emoji 👀 1 sosloan reacted with eyes emoji
All reactions
* 👍 4 reactions
* 🎉 2 reactions
* ❤️ 1 reaction
* 🚀 3 reactions
* 👀 1 reaction
6 people reacted
v8.17.0
v8.17.0
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 09 Mar 15:29
v8.17.0
4806c3b
💾 Download
Installation:
npm install pixi.js@8.17.0
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.0/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.0/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.0/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.17.0/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.17.0/docs/index.html
Changed
v8.16.0...v8.17.0
🚨 Behavior Change
* BlurFilter now uses an optimized halving strength scheme by default, which changes visual output compared to previous versions. Set legacy: true to restore the old behavior.
new BlurFilter({ legacy: true });
// or globally:
BlurFilter.defaultOptions.legacy = true;
* Text with align: 'justify' now uses wordWrapWidth for width calculation instead of maxLineWidth, matching CSS behavior. The last line is no longer stretched.
* breakWords: true in HTMLText now correctly uses CSS word-break: break-word instead of break-all to match behavior of other text renderers.
🎁 Added
* feat: add tagged text support to canvasTextSplit by @Zyie in #11949
+ SplitText now supports tagStyles, so styled runs (e.g. <red>Hello</red> <blue>World</blue>) are correctly split into per-character Text objects with individual styles preserved.
* feat: Improves text rendering and layout handling by @Zyie in #11947
+ Bitmap text now supports whiteSpace modes (normal, pre, nowrap, pre-line, pre-wrap) with proper space/newline collapsing
+ Bitmap text word wrap supports break-after characters (hyphens, en-dash, em-dash, soft hyphen)
+ Canvas text and split text now render align: 'justify' by distributing extra word spacing
+ Dynamic bitmap fonts scale drop shadow blur and distance proportionally to font size
+ Bitmap font xAdvance now uses true advance width from measureText() instead of bounding-box width
+ Kerning values correctly scaled by fontScale in dynamic bitmap fonts
* feat: add visibleChanged event to container by @ikigai-bjorn-s in #11940
container.on('visibleChanged', (visible) => {
console.log('Visibility changed to:', visible);
});
* feat: Add function for removing aliases from resolver by @Sertion in #11921
🐛 Fixed
* fix: prevent filter corruption with TexturePool mipmap separation by @vkarponen in #11865
* fix: blur by reducing strength on each pass by @Zyie in #11909
* fix: Reduce work done by the blur shader by @Sertion in #11917
* fix: Correctly handle offset in ColorMatrixFilter by @Sertion in #11925
* fix: Apply global filter offset to ParticleContainer rendering by @GoodBoyDigital in #11882
* fix: respect texture trim offset in NineSliceSprite by @shtse8 in #11919
* fix: return valid empty bounds from empty Graphics by @GoodBoyDigital in #11908
* fix: Graphics getLocalBounds returns stale data between operations in same frame by @GoodBoyDigital in #11886
* fix: Graphics bounds account for miter joins at sharp angles by @GoodBoyDigital in #11884
* fix: BindGroup crash when resource destroyed in batched group by @GoodBoyDigital in #11876
* fix: remove listener from old resource in BindGroup.setResource by @GoodBoyDigital in #11901
* fix: removeAllListeners() on Renderer.destroy() by @taye in #11951
* fix: correct minFPS/maxFPS mutual clamping in Ticker by @Zyie in #11952
* fix: invalidate cached source in color.setAlpha() to prevent stale alpha reuse by @darthvader58 in #11924
* fix: emit removed event when using addChildAt by @aSipz in #11912
* fix: guard against missing characters and kerning data in bitmap text by @stargazer-2697 in #11907
* fix: copy modifier keys from TouchEvent to normalized touch objects by @kaigritun in #11906
* fix: use quotes when loading a Web font to support old versions of Chrome by @adngdb in #11902
* fix: move DOMPipe registration to init.ts to fix Web Worker support by @Zyie in #11953
* fix: clarify BackgroundLoader cache behavior in documentation by @imuday984 in #11935
🧹 Chores
* chore: Add PixiJS development playground by @GoodBoyDigital in #11878
* chore: overhaul documentation system with TypeDoc plugins, examples, and guides by @Zyie in #11905
* chore: consolidate build and test scripts by @Zyie in #11910
* chore: expand build, test, and API documentation by @Zyie in #11956
* chore: combine visual test diff output into single labeled image by @Zyie in #11954
* chore: add ESLint rule enforcing ~/ imports in test and scene files by @Zyie in #11899
* chore: reorganizes visual scene tests into logical subdirectories by @Zyie in #11872
* chore: Improve test server setup by dynamically allocating port by @Zyie in #11874
* chore: increase HTMLText visual test wait from 250ms to 350ms by @Zyie in #11891
* chore: remove tsc-silent dependency by @Zyie
* docs: document filters + RenderLayer limitation by @GoodBoyDigital in #11883
New Contributors
* @adngdb made their first contribution in #11902
* @kaigritun made their first contribution in #11906
* @darthvader58 made their first contribution in #11924
* @Sertion made their first contribution in #11925
* @shtse8 made their first contribution in #11919
* @aSipz made their first contribution in #11912
* @ikigai-bjorn-s made their first contribution in #11940
* @vkarponen made their first contribution in #11865
* @imuday984 made their first contribution in #11935
* @taye made their first contribution in #11951
Contributors
*
*
*
*
*
*
*
*
*
*
*
*
*
Sertion, adngdb, and 11 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 2 uwu-420 and real-delex reacted with thumbs up emoji 🎉 1 uwu-420 reacted with hooray emoji ❤️ 3 uwu-420, catve, and jeveloper reacted with heart emoji 🚀 4 uwu-420, luckasnix, Julien-Marcou, and albinkong reacted with rocket emoji
All reactions
* 👍 2 reactions
* 🎉 1 reaction
* ❤️ 3 reactions
* 🚀 4 reactions
7 people reacted
v8.16.0
v8.16.0
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 03 Feb 16:55
v8.16.0
94156d3
💾 Download
Installation:
npm install pixi.js@8.16.0
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.16.0/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.16.0/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.16.0/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.16.0/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.16.0/docs/index.html
Changed
v8.15.0...v8.16.0
🚨 Behavior Change
* SplitText now more accurately splits Text across a wider range of TextStyle configurations. This may result in slight changes to character positioning.
* Using SplitText.from from an existing Text now correctly transfers the source anchor to the new instance by mapping the anchor to pivot coordinates. This changes layout and positioning compared to previous behavior.
* SplitBitmapText now correctly defaults to a white fill, matching the behavior of BitmapText.
* HTMLText now correctly respects breakWords and no longer cuts off words that exceed wordWrapWidth.
* HTMLText now respects the alpha value of its fill and stroke.
* Text now correctly aligns when using align: 'right' or align: 'center', resulting in a small positional adjustment.
* Container.cullArea is now correctly interpreted in the container’s local coordinate space and transformed to global coordinates before culling checks.
// cullArea is defined in local space and transformed during culling
container.cullArea = new Rectangle(0, 0, 100, 100);
* graphics.texture(texture, 0x000000) will now correctly apply a black tint
🎁 Added
* feat: Canvas renderer by @krzys @Zyie in #11815
+ Note: This feature is experimental, please let us know if you run into any issues.
await app.init({
preference: 'canvas'
});
* feat: tagged text by @Zyie in #11827
+ Note: Currently only works for Text/HTMLText, BitmapText support coming soon
const text = new Text({
text: '<bold>Important:</bold> This is <highlight>highlighted</highlight> text',
style: {
fontFamily: 'Arial',
fontSize: 28,
fill: 'white',
tagStyles: {
bold: { fontWeight: 'bold', fill: 'yellow' },
highlight: { fill: 'cyan', fontSize: 32 }
}
}
});
* feat: improve stability of SplitText by @Zyie in #11858
+ SplitText now fully mirrors Text behavior and regenerates automatically when its TextStyle changes via text.styleChanged()
splitText.style.fontSize = 32
splitText.styleChanged()
* feat: external texture support by @astralarya @GoodBoyDigital in #11846 #11861
* feat: add parseSync to spritesheet by @jimhigson in #11794
* feat: improved Pool typing for pool.get() method by @unstoppablecarl in #11799
* feat: add cube texture by @GoodBoyDigital in #11800
* by @GoodBoyDigital in
* feat: Implement mip level rendering support in the rendering system by @GoodBoyDigital in #11801
* feat: render to array layer by @GoodBoyDigital in #11803
🐛 Fixed
* fix: Improve HTML text measurement accuracy and add comprehensive test scenes by @Zyie in #11862
* fix: project container.cullArea from local to global coordinate space before doing cull check by @jujurocket in #11598
* fix: use vColor instead of localUniforms.uColor in WebGPU MSDF shader by @Riphal in #11848
* fix: preserve VAO cache in GlGeometrySystem by @GoodBoyDigital in #11863
* fix: GC system to ensure render groups are marked as dirty by @Zyie in #11842
* fix: SplitBitmapText requires "fill: 'white'" by @GiorgiMaziashvili in #11721
* fix: preserve generic type parameters in WGSL struct reflection by @stargazer-2697 in #11855
* fix: improve extractAttributesFromGpuProgram to support struct-based inputs by @GoodBoyDigital in #11796
* fix: improves tree-shaking by optimizing module imports by @Zyie in #11833
* fix: disambiguate falsey tint with black uint by @bigtimebuddy in #11831
* fix: BitmapFontManager getFont emitting TextStyle update event by @subhu339 in #11835
* fix: allow custom parsers to override src in Resolver (#11828) by @GoodBoyDigital in #11849
* fix: recognise WGSL vertex attributes followed by closing parenthesis by @stargazer-2697 in #11854
* fix: Video Loader Not Catching Load Errors by @stargazer-2697 in #11856
🧹 Chores
* chore: add visual tests for text rendering features by @Zyie in #11825
* chore: Upgrades dependencies by @Zyie in #11806
* chore: guide to use envinfo to get environment information by @typed SIGTERM in #11859
* chore: optimize fastCopy with waterfall typed array selection by @GoodBoyDigital in #11798
* chore: use texImage2D instead of texSubImage2D for video in Safari by @GoodBoyDigital in #11867
New Contributors
* @subhu339 made their first contribution in #11835
* @stargazer-2697 made their first contribution in #11854
* @GiorgiMaziashvili made their first contribution in #11721
* @Riphal made their first contribution in #11848
* @jujurocket made their first contribution in #11598
* @krzys made their first contribution in #11815
Contributors
*
*
*
*
*
*
*
*
*
*
*
*
*
jimhigson, astralarya, and 11 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 3 uwu-420, i0tool5, and samuel-etver reacted with thumbs up emoji 🎉 3 uwu-420, i0tool5, and kisekiremi reacted with hooray emoji ❤️ 1 uwu-420 reacted with heart emoji 🚀 6 uwu-420, MtMath, Julien-Marcou, i0tool5, kisekiremi, and schneeland reacted with rocket emoji
All reactions
* 👍 3 reactions
* 🎉 3 reactions
* ❤️ 1 reaction
* 🚀 6 reactions
7 people reacted
v8.15.0
v8.15.0
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 05 Jan 10:10
v8.15.0
d7e9a5d
💾 Download
Installation:
npm install pixi.js@8.15.0
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.15.0/docs/index.html
Changed
v8.14.3...v8.15.0
🎁 Added
* feat: add unified GC by @Zyie in #11786
+ Deprecated TextureGCSystem/RenderableGCSystem in favor of GCSystem.
// old
app.init({
textureGCActive: true,
textureGCMaxIdle: 60000,
textureGCCheckCountMax: 30000,
renderableGCActive: true,
renderableGCMaxUnusedTime: 60000,
renderableGCFrequency: 30000,
});
// new
app.init({
gcActive: true,
gcMaxUnusedTime: 60000,
gcFrequency: 30000,
});
+ feat: Adds auto-GC option to view containers by @Zyie in #11810
o Disable automatic garbage collection for a node.
new Sprite({
autoGarbageCollect: false,
});
* feat: add unload method to reset GPU data by @Zyie in #11762
+ You can now manually unload a node by calling its unload method. This releases any GPU resources associated with the node. The node can still be used afterward—it will be re-created automatically when needed.
sprite.unload();
text.unload();
mesh.unload();
+ feat: move GPU context storage to GraphicsContext._gpuData by @Zyie in #11763
+ feat: move GPU data to Geometry._gpuData by @Zyie in #11772
+ feat: move GPUData to TextureSource by @Zyie in #11774
+ feat: move GL/GPU buffer storage to Buffer._gpuData and manage buffers list by @Zyie in #11775
+ feat: add descriptive names GCManagedHash by @Zyie in #11811
+ feat: update text GPU lifecycle and resolution updates by @Zyie in #11781
* feat: ParticleContainer type improvements by @unstoppablecarl in #11708
* feat: allow RenderTexture.create to accept dynamic option by @seanzhaoxiaoxiao in #11767
🐛 Fixed
* fix: SVGParser.ts Allow negative values for Polygon(s)/polyline(s) by @Raukie in #11771
* fix: prevent double returning of batches to pool by @GoodBoyDigital in #11780
* fix: Add error handling for message processing in KTX worker by @zardoy in #11768
* fix: RenderTexture ignoring format setting (WebGL) by @laino in #11777
* fix: Add Multiple Render Targets (MRT) support by @GoodBoyDigital in #11792
* fix: correct viewport Y calculation for root render targets by @GoodBoyDigital in #11797
* fix: garbage collection for bitmap text by @Zyie in #11809
🧹 Chores
* chore: Improve JSDoc documentation across modules by @Zyie in #11812
* chore: refactors CI workflows for trusted publishing by @Zyie in #11820
New Contributors
* @Raukie made their first contribution in #11771
* @seanzhaoxiaoxiao made their first contribution in #11767
* @zardoy made their first contribution in #11768
Contributors
*
*
*
*
*
*
*
unstoppablecarl, laino, and 5 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 8 uwu-420, hpq-dev, jefersonbraine, ax9880, i0tool5, bumperplus33, kalugar, and msm0748 reacted with thumbs up emoji 🎉 3 uwu-420, jefersonbraine, and i0tool5 reacted with hooray emoji ❤️ 2 uwu-420 and jeveloper reacted with heart emoji 🚀 6 uwu-420, luckasnix, i0tool5, tddyco, Jennics-SG, and Julien-Marcou reacted with rocket emoji
All reactions
* 👍 8 reactions
* 🎉 3 reactions
* ❤️ 2 reactions
* 🚀 6 reactions
13 people reacted
v8.15.0-rc
v8.15.0-rc Pre-release
Pre-release
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 08 Dec 17:43
v8.15.0-rc
6c56e1b
💾 Download
Installation:
npm install pixi.js@8.15.0-rc
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0-rc/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0-rc/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0-rc/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.15.0-rc/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.15.0-rc/docs/index.html
Changed
v8.14.3...v8.15.0-rc
🎁 Added
* feat: allow RenderTexture.create to accept dynamic option by @seanzhaoxiaoxiao in #11767
* feat: add unload method to reset GPU data by @Zyie in #11762
* feat: add unified GC by @Zyie in #11786
+ feat: move GPU context storage to GraphicsContext._gpuData by @Zyie in #11763
+ feat: move GPU data to Geometry._gpuData by @Zyie in #11772
+ feat: move GPUData to TextureSource by @Zyie in #11774
+ feat: move GL/GPU buffer storage to Buffer._gpuData and manage buffers list by @Zyie in #11775
+ feat: update text GPU lifecycle and resolution updates by @Zyie in #11781
* feat: ParticleContainer type improvements by @unstoppablecarl in #11708
🐛 Fixed
* fix: SVGParser.ts Allow negative values for Polygon(s)/polyline(s) by @Raukie in #11771
* fix: prevent double returning of batches to pool by @GoodBoyDigital in #11780
* fix: Add error handling for message processing in KTX worker by @zardoy in #11768
* fix: RenderTexture ignoring format setting (WebGL) by @laino in #11777
* fix: Add Multiple Render Targets (MRT) support by @GoodBoyDigital in #11792
New Contributors
* @Raukie made their first contribution in #11771
* @seanzhaoxiaoxiao made their first contribution in #11767
* @zardoy made their first contribution in #11768
Contributors
*
*
*
*
*
*
*
unstoppablecarl, laino, and 5 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 4 i0tool5, bysq-2006, Julien-Marcou, and hpq-dev reacted with thumbs up emoji 🎉 1 Julien-Marcou reacted with hooray emoji 🚀 3 i0tool5, Julien-Marcou, and hpq-dev reacted with rocket emoji
All reactions
* 👍 4 reactions
* 🎉 1 reaction
* 🚀 3 reactions
4 people reacted
v8.14.3
v8.14.3
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 20 Nov 12:35
v8.14.3
e17c886
💾 Download
Installation:
npm install pixi.js@8.14.3
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.3/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.3/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.3/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.3/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.14.3/docs/index.html
Changed
v8.14.2...v8.14.3
🐛 Fixed
* fix: Only create stage Container on init if it doesn't exist by @lunarraid in #11766
Contributors
*
lunarraid
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 5 luckasnix, i0tool5, taojianong, bysq-2006, and deng-goods reacted with thumbs up emoji 🎉 1 i0tool5 reacted with hooray emoji
All reactions
* 👍 5 reactions
* 🎉 1 reaction
5 people reacted
v8.14.2
v8.14.2
Compare
Choose a tag to compare
Sorry, something went wrong.
Filter
Loading
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
No results found
View all tags
Zyie released this 18 Nov 09:23
v8.14.2
506a83c
💾 Download
Installation:
npm install pixi.js@8.14.2
Development Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.2/dist/pixi.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.2/dist/pixi.mjs
Production Build:
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.2/dist/pixi.min.js
* https://cdn.jsdelivr.net/npm/pixi.js@8.14.2/dist/pixi.min.mjs
Documentation:
* https://pixijs.download/v8.14.2/docs/index.html
Changed
v8.14.1...v8.14.2
🐛 Fixed
* fix: graphics memory leak and cleanup by @Zyie in #11753
* fix: typo in Application example: replace '-' with '=' in asset loading by @Aryaman1792 in #11750
* fix: parse resolution and format from URLs in object sources in assets resolver by @stereopasa in #11747
* fix: track item count in Pool class and add related tests by @Zyie in #11760
* fix: bitmanFontXMLParser should recognize xml fonts with versions by @rafalaidlaw in #11761
* fix: Remove automatically added 'resize' event listener from TextureSource on Texture destroy() by @Romans-I-XVI in #11764
* fix: resolve a typescript annoyance with Container.filters by @jimhigson in #11757
* fix: enable proper application reinitialization by @Zyie in #11759
* fix: correct uBackTexture binding for filters with blendRequired by @GoodBoyDigital in #11754
🧹 Chores
* chore: add mention of uBackTexture to Filter docs (otherwise undocumented) by @jimhigson in #11756
New Contributors
* @Aryaman1792 made their first contribution in #11750
* @stereopasa made their first contribution in #11747
* @rafalaidlaw made their first contribution in #11761
* @Romans-I-XVI made their first contribution in #11764
Contributors
*
*
*
*
*
*
*
jimhigson, GoodBoyDigital, and 5 other contributors
Assets 35
Loading
Uh oh!
There was an error while loading. Please reload this page.
👍 4 luckasnix, stereopasa, jaydensipe, and i0tool5 reacted with thumbs up emoji 🚀 1 i0tool5 reacted with rocket emoji
All reactions
* 👍 4 reactions
* 🚀 1 reaction
4 people reacted
Previous 1 2 3 4 5 … 30 31 Next
Previous Next
Footer
© 2026 GitHub, Inc.
Footer navigation
* Terms
* Privacy
* Security
* Status
* Community
* Docs
* Contact
* Manage cookies
* Do not share my personal information
You can’t perform that action at this time.
На даний момент порівняння виконується за текстом, а не графічно; доступний лише останній скріншот.
Скріншот вимагає завантажувача контенту (Sockpuppetbrowser, selenium тощо), який підтримує створення скріншотів.