diff --git a/pyscriptjs/examples/webgl/points/index.html b/pyscriptjs/examples/webgl/points/index.html
new file mode 100644
index 0000000..2d4301f
--- /dev/null
+++ b/pyscriptjs/examples/webgl/points/index.html
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+from pyodide import create_proxy, to_js
+from js import window
+from js import Math
+from js import THREE
+from js import performance
+from pyodide import to_js
+from js import Object, Float32Array
+
+
+
+
diff --git a/pyscriptjs/examples/webgl/points/main.css b/pyscriptjs/examples/webgl/points/main.css
new file mode 100644
index 0000000..d496122
--- /dev/null
+++ b/pyscriptjs/examples/webgl/points/main.css
@@ -0,0 +1,91 @@
+body {
+ margin: 0;
+ background-color: #000;
+ color: #fff;
+ font-family: Monospace;
+ font-size: 13px;
+ line-height: 24px;
+ overscroll-behavior: none;
+}
+
+a {
+ color: #ff0;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+button {
+ cursor: pointer;
+ text-transform: uppercase;
+}
+
+#info {
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ padding: 10px;
+ box-sizing: border-box;
+ text-align: center;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ z-index: 1; /* TODO Solve this in HTML */
+}
+
+a, button, input, select {
+ pointer-events: auto;
+}
+
+.lil-gui {
+ z-index: 2 !important; /* TODO Solve this in HTML */
+}
+
+@media all and ( max-width: 640px ) {
+ .lil-gui.root {
+ right: auto;
+ top: auto;
+ max-height: 50%;
+ max-width: 80%;
+ bottom: 0;
+ left: 0;
+ }
+}
+
+#overlay {
+ position: absolute;
+ font-size: 16px;
+ z-index: 2;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ background: rgba(0,0,0,0.7);
+}
+
+ #overlay button {
+ background: transparent;
+ border: 0;
+ border: 1px solid rgb(255, 255, 255);
+ border-radius: 4px;
+ color: #ffffff;
+ padding: 12px 18px;
+ text-transform: uppercase;
+ cursor: pointer;
+ }
+
+#notSupported {
+ width: 50%;
+ margin: auto;
+ background-color: #f00;
+ margin-top: 20px;
+ padding: 10px;
+}