diff --git a/spine-ts/spine-webgl/example/canvas3.html b/spine-ts/spine-webgl/example/canvas3.html
index cb807c1eb..a791a981d 100644
--- a/spine-ts/spine-webgl/example/canvas3.html
+++ b/spine-ts/spine-webgl/example/canvas3.html
@@ -25,8 +25,8 @@
will-change: transform;
}
-
-
+
+
+
OverlayCanvas Example
+
+
Scroll down to div.
+
+
+
+
+
Spine Box 1
+
+
+
+
+
+
Spine Box 2 (drag me)
+
+
+
+
+
+
Raptor Box
+
+
+
+
+
+
Celeste Box
+
+
+
End of content.
+
+
+
+
+
\ No newline at end of file
diff --git a/spine-ts/spine-webgl/src/SpineCanvasOverlay.ts b/spine-ts/spine-webgl/src/SpineCanvasOverlay.ts
new file mode 100644
index 000000000..973c60850
--- /dev/null
+++ b/spine-ts/spine-webgl/src/SpineCanvasOverlay.ts
@@ -0,0 +1,199 @@
+/******************************************************************************
+ * Spine Runtimes License Agreement
+ * Last updated July 28, 2023. Replaces all prior versions.
+ *
+ * Copyright (c) 2013-2023, Esoteric Software LLC
+ *
+ * Integration of the Spine Runtimes into software or otherwise creating
+ * derivative works of the Spine Runtimes is permitted under the terms and
+ * conditions of Section 2 of the Spine Editor License Agreement:
+ * http://esotericsoftware.com/spine-editor-license
+ *
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software or
+ * otherwise create derivative works of the Spine Runtimes (collectively,
+ * "Products"), provided that each user of the Products must obtain their own
+ * Spine Editor license and redistribution of the Products in any form must
+ * include this license and copyright notice.
+ *
+ * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
+ * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
+ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+import { SpineCanvas, SpineCanvasApp, AtlasAttachmentLoader, SkeletonBinary, SkeletonJson, Skeleton, AnimationState, AnimationStateData, Physics, Vector3, ResizeMode, Color } from "./index.js";
+
+/** Manages the life-cycle and WebGL context of a {@link SpineCanvasApp}. The app loads
+ * assets and initializes itself, then updates and renders its state at the screen refresh rate. */
+export class SpineCanvasOverlay {
+
+ private spineCanvas:SpineCanvas;
+ private canvas:HTMLCanvasElement;
+
+ private skeletonList = new Array<{ skeleton: Skeleton, state: AnimationState, htmlElements: Array