Does anyone else have issues with OffscreenCanvas resizing getting squeezed during resize? It’s like there’s a big delay before the main thread canvas is updated causing some dumb looking distortions
July 19, 2025 at 6:21 PM
Does anyone else have issues with OffscreenCanvas resizing getting squeezed during resize? It’s like there’s a big delay before the main thread canvas is updated causing some dumb looking distortions
So you can decode an image from a Blob into an ImageBitmap, but you can't access the pixels from ImageBitmap. Instead you need to construct an OffscreenCanvas, draw it to the canvas, and then read the pixels back from the canvas into ImageData???
This shit is stupid I stg im gonna scream
This shit is stupid I stg im gonna scream
September 9, 2025 at 1:27 AM
So you can decode an image from a Blob into an ImageBitmap, but you can't access the pixels from ImageBitmap. Instead you need to construct an OffscreenCanvas, draw it to the canvas, and then read the pixels back from the canvas into ImageData???
This shit is stupid I stg im gonna scream
This shit is stupid I stg im gonna scream
Worklet で実行されるから、OffscreenCanvas を Worker で実行するよりも大量に要素を複製できるかもしれない?
November 7, 2024 at 3:10 AM
Worklet で実行されるから、OffscreenCanvas を Worker で実行するよりも大量に要素を複製できるかもしれない?
Don't miss out on Shubham Gautam's enlightening talk on unlocking the full potential of modern web applications with #React, #WebWorkers, and #OffscreenCanvas!
https://gitnation.com/contents/scaling-react-apps-with-parallelism-patterns-for-multi-threaded-uis
https://gitnation.com/contents/scaling-react-apps-with-parallelism-patterns-for-multi-threaded-uis
September 25, 2025 at 2:01 PM
Don't miss out on Shubham Gautam's enlightening talk on unlocking the full potential of modern web applications with #React, #WebWorkers, and #OffscreenCanvas!
https://gitnation.com/contents/scaling-react-apps-with-parallelism-patterns-for-multi-threaded-uis
https://gitnation.com/contents/scaling-react-apps-with-parallelism-patterns-for-multi-threaded-uis
Widely available: ImageBitmapRenderingContext
Description: The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> eleme...
Description: The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> eleme...
ImageBitmapRenderingContext on Webplatform Feature Explorer
The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> eleme...
web-platform-dx.github.io
July 22, 2025 at 4:45 PM
Widely available: ImageBitmapRenderingContext
Description: The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> eleme...
Description: The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> eleme...
うーん、canvasがOffscreenCanvasとして転送済みかどうかチェックしたいけど、難しそうね。
August 11, 2024 at 7:45 AM
うーん、canvasがOffscreenCanvasとして転送済みかどうかチェックしたいけど、難しそうね。
Part of this is that I'm doing CV (in WASM) on video coming in from the content process, so getting the image chunk into the service worker is weird (video -> copy to offscreencanvas -> convertToBlob -> createURLobject -> sendMessage to service worker -> fetch/unpack/CV in service worker)
December 7, 2024 at 8:02 AM
Part of this is that I'm doing CV (in WASM) on video coming in from the content process, so getting the image chunk into the service worker is weird (video -> copy to offscreencanvas -> convertToBlob -> createURLobject -> sendMessage to service worker -> fetch/unpack/CV in service worker)
Yeah since this is entirely a browser based engine, I have to optimize as much as I can without multiple reads to the offscreencanvas each frame. The res is at minimum 320 x 569 + any extra viewport, but adding in particle fx and tracking each one's pos and life each frame is gonna be a perf yucky.
November 20, 2024 at 7:03 PM
Yeah since this is entirely a browser based engine, I have to optimize as much as I can without multiple reads to the offscreencanvas each frame. The res is at minimum 320 x 569 + any extra viewport, but adding in particle fx and tracking each one's pos and life each frame is gonna be a perf yucky.
if you need me i’ll be over here playing around with an offscreenCanvas(width*scaleFactor, height*scaleFactor).
June 16, 2025 at 12:13 AM
if you need me i’ll be over here playing around with an offscreenCanvas(width*scaleFactor, height*scaleFactor).
image-rsでブラウザサイドでリサイズ・圧縮するやつ、作るだけ作ったけど普通にOffscreenCanvas版の劣化でしかない https://tamaina.github.io/image-rs-wasm/
Interest | Match | Feed
Interest | Match | Feed
Origin
p1.a9z.dev
July 28, 2025 at 8:15 PM
I should also note: my solutions are not efficient at all. There is lots of room for improvement (eg. consolidating paths, OffscreenCanvas, throttling events). But yeah I was trying to come up with the worst-case baseline, so that it can only get better from these numbers.
January 2, 2025 at 11:38 PM
I should also note: my solutions are not efficient at all. There is lots of room for improvement (eg. consolidating paths, OffscreenCanvas, throttling events). But yeah I was trying to come up with the worst-case baseline, so that it can only get better from these numbers.
I'm learning how to use Three.js in a freelance project. So many things I didn't know what to do! For example, I didn't know that there was such a thing as OffScreenCanvas! I'm using it to process a three dimensional model in a WebWorker since a web worker doesn't support a regular canvas.
March 29, 2025 at 1:34 AM
I'm learning how to use Three.js in a freelance project. So many things I didn't know what to do! For example, I didn't know that there was such a thing as OffScreenCanvas! I'm using it to process a three dimensional model in a WebWorker since a web worker doesn't support a regular canvas.
Les notes de version de Firefox 125.0.1 annoncent de nouveaux formats vidéo pour une meilleure qualité d'images à la disposition des plateformes de streaming ou encore le surlignage dans la visionneuse de PDF www.mozilla.org/en-US/firefo...
April 17, 2024 at 9:40 AM
Les notes de version de Firefox 125.0.1 annoncent de nouveaux formats vidéo pour une meilleure qualité d'images à la disposition des plateformes de streaming ou encore le surlignage dans la visionneuse de PDF www.mozilla.org/en-US/firefo...
Re-implemented polygon rasterization in #WebAssembly for a 5x speedup over native browser OffscreenCanvas. Bonus: SLA mode works in Firefox and Safari now (they lack OffscreenCanvas support). @anycubic3dprint #3dprinting
January 22, 2025 at 1:16 AM
Re-implemented polygon rasterization in #WebAssembly for a 5x speedup over native browser OffscreenCanvas. Bonus: SLA mode works in Firefox and Safari now (they lack OffscreenCanvas support). @anycubic3dprint #3dprinting
OffscreenCanvas is gonna unlock a lot of cool WebGL/WebVR use cases, but it's gonna take some time to adjust to new dev/debug patterns.
November 20, 2024 at 10:15 PM
OffscreenCanvas is gonna unlock a lot of cool WebGL/WebVR use cases, but it's gonna take some time to adjust to new dev/debug patterns.
The first website I ever made: denniskats.dev/Mocking-Spon...
Made it before OffscreenCanvas was available, so it uses a hidden canvas and data URLS to display it as an image.
Last I checked, this gets around 1K visitors a month 😁
Made it before OffscreenCanvas was available, so it uses a hidden canvas and data URLS to display it as an image.
Last I checked, this gets around 1K visitors a month 😁
Mocking SpongeBob Meme Generator
An over the top generator for the Mocking SpongeBob meme.
denniskats.dev
July 29, 2025 at 3:41 AM
The first website I ever made: denniskats.dev/Mocking-Spon...
Made it before OffscreenCanvas was available, so it uses a hidden canvas and data URLS to display it as an image.
Last I checked, this gets around 1K visitors a month 😁
Made it before OffscreenCanvas was available, so it uses a hidden canvas and data URLS to display it as an image.
Last I checked, this gets around 1K visitors a month 😁
WebGPU や OffscreenCanvas など尖った技術を活用した高品質 CG が見事な Utsubo のウェブサイト
https://webgl.souhonzan.org/entry?v=2828
https://webgl.souhonzan.org/entry?v=2828
WebGPU や OffscreenCanvas など尖った技術を活用した高品質 CG が見事な Utsubo のウェブサイト - WebGL 総本山
three.js の最先端事例を感じてみよう
今回ご紹介するのは、当サイトでも何度もご紹介している Utsubo のウェブサイトです。
もともとかなり品質の高い WebGL の実装を多く手掛けていた同社ですが、最近では WebGPU と、それを活用した three.js への貢献などで、ウェブの発展にも大きく寄与しています。
今回のサイトは同社のコーポレートサイトにあたるのだと思いますが、大迫力の CG が迫る WebGPU 事例となっています。
リンク:
Utsubo - Embark on New Frontiers of Digital Experiences
webgl.souhonzan.org
December 16, 2024 at 12:00 PM
WebGPU や OffscreenCanvas など尖った技術を活用した高品質 CG が見事な Utsubo のウェブサイト
https://webgl.souhonzan.org/entry?v=2828
https://webgl.souhonzan.org/entry?v=2828
image-rsをwasm化してブラウザサイドでリサイズ・圧縮するやつ、作るだけ作ったけど普通にOffscreenCanvas版の劣化でしかない https://tamaina.github.io/image-rs-wasm/
Interest | Match | Feed
Interest | Match | Feed
Origin
p1.a9z.dev
July 28, 2025 at 8:16 PM
Pretty happy with my latest commit. Arcanetable’s image loading was stuttery on load—now? 🚀
✅ WebWorker + OffscreenCanvas for loading/resizing
✅ Caches promises to avoid duplicate work
✅ Staggered texture loading
No jank. Just vibes. ✨
#indiedev #buildinpublic #mtg #tcg #perf
before and after
✅ WebWorker + OffscreenCanvas for loading/resizing
✅ Caches promises to avoid duplicate work
✅ Staggered texture loading
No jank. Just vibes. ✨
#indiedev #buildinpublic #mtg #tcg #perf
before and after
December 18, 2024 at 12:12 AM
Pretty happy with my latest commit. Arcanetable’s image loading was stuttery on load—now? 🚀
✅ WebWorker + OffscreenCanvas for loading/resizing
✅ Caches promises to avoid duplicate work
✅ Staggered texture loading
No jank. Just vibes. ✨
#indiedev #buildinpublic #mtg #tcg #perf
before and after
✅ WebWorker + OffscreenCanvas for loading/resizing
✅ Caches promises to avoid duplicate work
✅ Staggered texture loading
No jank. Just vibes. ✨
#indiedev #buildinpublic #mtg #tcg #perf
before and after
@jakearchibald.com
Quick technical question!
Do you know why canvas.toDataUrl() is like 10x faster than canvas.toBlob() and then createObjectURL(blob)?
Could this be a bug in Chrome?
Tried with OffscreenCanvas too and seeing similar results.
Quick technical question!
Do you know why canvas.toDataUrl() is like 10x faster than canvas.toBlob() and then createObjectURL(blob)?
Could this be a bug in Chrome?
Tried with OffscreenCanvas too and seeing similar results.
November 9, 2024 at 3:19 PM
@jakearchibald.com
Quick technical question!
Do you know why canvas.toDataUrl() is like 10x faster than canvas.toBlob() and then createObjectURL(blob)?
Could this be a bug in Chrome?
Tried with OffscreenCanvas too and seeing similar results.
Quick technical question!
Do you know why canvas.toDataUrl() is like 10x faster than canvas.toBlob() and then createObjectURL(blob)?
Could this be a bug in Chrome?
Tried with OffscreenCanvas too and seeing similar results.
Optimizing Angular Applications with Web Workers and OffscreenCanvas
#Angular #FrontendDevelopment #WebWorkers #OffscreenCanvas #Optimizing #Performance
g.omid.dev/xDry1qe
#Angular #FrontendDevelopment #WebWorkers #OffscreenCanvas #Optimizing #Performance
g.omid.dev/xDry1qe
Optimizing Angular Applications with Web Workers and OffscreenCanvas
In today’s web development landscape, performance is king. Users expect fast, responsive applications that perform smoothly even under heavy loads. This expectation places a significant burden on deve...
g.omid.dev
June 23, 2024 at 9:35 PM
Optimizing Angular Applications with Web Workers and OffscreenCanvas
#Angular #FrontendDevelopment #WebWorkers #OffscreenCanvas #Optimizing #Performance
g.omid.dev/xDry1qe
#Angular #FrontendDevelopment #WebWorkers #OffscreenCanvas #Optimizing #Performance
g.omid.dev/xDry1qe
To maintain smooth particle animations during GitHub Spark's loading screen, we render them in a web worker using OffscreenCanvas while code generation runs on the main thread
November 2, 2024 at 6:42 PM
To maintain smooth particle animations during GitHub Spark's loading screen, we render them in a web worker using OffscreenCanvas while code generation runs on the main thread
Color lerping in LCH the lazy way:
Making an OffscreenCanvas and throwing an "in lch" color-mix CSS to its fillStyle and then getting it to report the resulting color back.
Making an OffscreenCanvas and throwing an "in lch" color-mix CSS to its fillStyle and then getting it to report the resulting color back.
November 5, 2025 at 5:55 AM
Color lerping in LCH the lazy way:
Making an OffscreenCanvas and throwing an "in lch" color-mix CSS to its fillStyle and then getting it to report the resulting color back.
Making an OffscreenCanvas and throwing an "in lch" color-mix CSS to its fillStyle and then getting it to report the resulting color back.
なるほど OffscreenCanvas...! / OffscreenCanvas - Web APIs | MDN https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas
OffscreenCanvas - Web APIs | MDN
When using the <canvas> element or the Canvas API, rendering, animation, and user interaction usually happen on the main execution thread of a web application.
The computation relating to canvas animations and rendering can have a significant impact on application performance.
developer.mozilla.org
November 21, 2023 at 12:11 PM
なるほど OffscreenCanvas...! / OffscreenCanvas - Web APIs | MDN https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas