diff --git a/examples/vwm-viewer/Dockerfile b/examples/vwm-viewer/Dockerfile
new file mode 100644
index 00000000..fbc0f6e0
--- /dev/null
+++ b/examples/vwm-viewer/Dockerfile
@@ -0,0 +1,4 @@
+FROM nginx:alpine
+COPY . /usr/share/nginx/html/
+COPY nginx.conf /etc/nginx/conf.d/default.conf
+EXPOSE 8080
diff --git a/examples/vwm-viewer/canvas-viewer.html b/examples/vwm-viewer/canvas-viewer.html
new file mode 100644
index 00000000..be74c560
--- /dev/null
+++ b/examples/vwm-viewer/canvas-viewer.html
@@ -0,0 +1,318 @@
+
+
+
+
+
+ RuVector VWM - 4D Gaussian Splatting Viewer (Canvas2D)
+
+
+
+
+
+
+
FPS --
+
Gaussians 0
+
Visible 0
+
Mode canvas2d
+
Entities 5
+
+
coherent
+
+
initializing...
+
+
background (60%)
+
planet-alpha (15%)
+
planet-beta (10%)
+
shuttle (5%)
+
core (10%)
+
+
+
+
+ t=0.000
+
+
+
+
+
+
diff --git a/examples/vwm-viewer/football.html b/examples/vwm-viewer/football.html
new file mode 100644
index 00000000..27d75f55
--- /dev/null
+++ b/examples/vwm-viewer/football.html
@@ -0,0 +1,1239 @@
+
+
+
+
+
+ RuVector VWM - Super Bowl LX: Patriots vs Seahawks (4D Gaussian Splatting)
+
+
+
+
+
+
+
+
Super Bowl LX • Las Vegas
+
+
+
+
+
+
+
+
NE
+
(14-5)
+
0
+
+
+
+
+
+
SEA
+
(13-6)
+
0
+
+
+
+
+
1ST
+
15:00
+
1st & 10
+
NE 25
+
+
+
+
+
+ PLAY CLOCK
+ 40
+
+
+
+
+
Gaussians: 0
+
FPS: 0
+
Camera: Broadcast
+
Coherence: 1.000
+
+
+
+
+
Q1 15:00 Super Bowl LX is underway!
+
+
+
+
+
REPLAY
+
+
+
RUVECTOR VWM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
t=0.000
+
+
+
+
+
+
diff --git a/examples/vwm-viewer/nginx.conf b/examples/vwm-viewer/nginx.conf
new file mode 100644
index 00000000..2d9eab40
--- /dev/null
+++ b/examples/vwm-viewer/nginx.conf
@@ -0,0 +1,17 @@
+server {
+ listen 8080;
+ server_name _;
+ root /usr/share/nginx/html;
+ index football.html index.html;
+
+ location / {
+ try_files $uri $uri/ /football.html;
+ }
+
+ location ~* \.(html|js|css)$ {
+ add_header Cache-Control "public, max-age=3600";
+ }
+
+ gzip on;
+ gzip_types text/html text/css application/javascript;
+}