diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0989c31
--- /dev/null
+++ b/index.html
@@ -0,0 +1,78 @@
+
+
+
+ BioDigital Plasma Engine (Brian Chirls)
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..7310ec3
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,159 @@
+class: middle, center
+# Plasma Engine
+## Building a WebGL Engine for an Educational Platform
+by Brian Chirls
+3D Graphics Engineer, BioDigital
+
+---
+class: middle, center
+# What is BioDigital?
+"The BioDigital Human is an interactive 3D software platform for visualizing anatomy, disease, and treatment."
+
+---
+
+# Product Scope
+- 1000+ library modules, plus client content
+- Content types
+ - Gross anatomy
+ - Conditions & Procedures
+ - Medical devices
+ - Cellular and microscopic
+- 6k+ objects, 3mil+ vertices, ~200 textures
+
+---
+
+# How is a platform different?
+
+--
+- Range of content, can't customize code
+
+--
+- Range of hardware
+
+--
+- Range of network conditions
+
+--
+- Lots of text (DOM) [accessibility]
+
+---
+
+# Unique content challenges
+
+--
+- So many objects
+
+--
+- So many vertices
+
+--
+- Nothing is repeated (more than once)
+
+--
+- Everything is visible
+
+--
+- Nothing is far away
+
+---
+
+# Content pipeline
+- Authoring in Maya and Substance Painter
+- Custom export via Maya plugin
+- Compress textures on server
+- Authoring in web app
+- Load on demand in browser
+
+---
+
+# Starting Point
+- Old engine: SceneJS abandoned and forked years ago
+- Heavily optimized but inflexible and hard to understand
+- Old coding conventions
+- Old hardware/software support assumptions
+
+---
+
+# New Engine Goals:
+- Improve architecture for upgrades and fixes
+- Improve documentation in and outside code
+- Match or exceed performance
+- Maintain support for old WebGL 1 devices
+- WebXR support
+
+---
+
+# Architecture
+- Separation of concerns:
+ - Anatomy Objects (application object)
+ - Scene Graph (renderable objects)
+ - Simulation (particles & animation)
+ - Renderer
+- Event-driven
+
+---
+
+# Why not Three.js?
+
+--
+- No semver, breaking changes on every release
+
+--
+- Kills features and support too often
+
+--
+- Custom particle systems & animation
+
+--
+- Would be too much use of low-level hooks like custom shaders
+
+---
+
+# Why not GLTF?
+
+--
+- Conditional loading of compressed textures, based on support
+
+--
+- Full representation of scene graph w/ application-specific info and references to shared resources
+
+--
+- Restrictions on texture maps:
+ - cannot stack multiple layers
+ - metallic/roughness must be same image, but no support for other texture packing
+
+---
+# Why not GLTF?...
+- Custom particle systems
+
+--
+- Could address with custom extensions, but at that point may as well use our own format
+
+---
+
+exclude: true
+
+# QA strategies
+
+--
+exclude: true
+- Bugs
+ - Unit tests with Jest (~46% coverage, ~1200 tests)
+ - Screenshot diffing
+ - Manual testing
+
+--
+exclude: true
+- Performance
+ - Frame rate, loading time,
+ - Define specific targets
+ - Automated benchmarks with jest
+ - Manual profiling with browser tools
+
+---
+# zSpace
+
+- Lenticular display: 3D without glasses
+- WebXR
+- Scaling and placement
+- Stylus input