+
+
+
+
diff --git a/_posts/2012-06-25-first-post.md b/_posts/2012-06-25-first-post.md
new file mode 100644
index 0000000..53c5e74
--- /dev/null
+++ b/_posts/2012-06-25-first-post.md
@@ -0,0 +1,9 @@
+---
+layout: default
+title: lame hello world joke here
+---
+Since you're here, you must be interested in 3DRecursion, a tool for visualizing and exploring recursion in the form of 3d models. Here you'll find the progress log for the project, chronicling all the stumblings I make along the way. Since I've never used WebGL (which 3DR will rely heavily on), I'll most likely be including the more important insights I encounter as I learn that tool, along with anything else interesting I run into regarding jQuery, Backbone.js, or even just JavaScript in general.
+
+I'll also try to include at least a small post with each (non-minor) commit made, with a title matching that of the commit. In this way, you can look at the source being talked about by finding the commit with the corresponding date/message on [Github](https://github.com/evanpurcer/3d-recursion).
+
+That's all for now. More to come once I actually start building this thing.
diff --git a/_posts/2012-07-12-setup.md b/_posts/2012-07-12-setup.md
new file mode 100644
index 0000000..c81f240
--- /dev/null
+++ b/_posts/2012-07-12-setup.md
@@ -0,0 +1,9 @@
+---
+layout: default
+title: Setting Up the Initial Framework
+---
+For the web application, I've decided that a simple framework of Backbone.js and jQuery will be the most effective way to organize the code, while not sacrificing performance. jQuery will be hugely helpful as a method of abstracting away much of the messy code required to implement the user interface. It will be used for most event handling, in addition to its usual DOM manipulation capabilities. Of course, this project will only utilize the DOM abstraction lightly since all of the complex operations are happening within the 3d rendering environment, which is fairly separated from the DOM, apart from existing in an element in it.
+
+Backbone.js, on the other hand, will be used to provide basic data modelling, in the form of models and collections (of models). I've decided that in the application, the basic unit of data will be the cube, for simplicity and ease of rendering (this may be expanded later). For now, that's all that's necessary to demonstrate the recursive operation that the user needs to be able to perform. Backbone.js will help define a cube model that will encapsulate most of the complication of creating, rendering, and manipulating cubes in 3d space.
+
+Additional tools that will be used are RequireJS and Three.js. RequireJS is nothing more than a way to organize a JavaScript project into multiple files, and also has the capability of loading those files asynchronously, when they are needed. It mostly helps with managing dependencies between different parts of the app and the various libraries. Three.js is a general purpose 3d rendering library for JavaScript, and seems to be the current standard for this kind of work. It's comparable to something like OpenGL, exposing methods for defining and rendering materials, meshes, lighting, etc. It also leverages both WebGL and HTML5 Canvas, which is a plus because it provides flexibility, allowing the app to run on a wider variety of systems.
diff --git a/_posts/2012-07-15-webgl.md b/_posts/2012-07-15-webgl.md
new file mode 100644
index 0000000..6809624
--- /dev/null
+++ b/_posts/2012-07-15-webgl.md
@@ -0,0 +1,9 @@
+---
+layout: default
+title: Detecting WebGL
+---
+One of the best things I've found about Three.js is that the interface it provides for Canvas and WebGL, seem to be completely identical, the only difference being the renderer object that's used to render the scene. Because of this, I realized that it would be extremely easy to use Canvas and WebGL interchangeably.
+
+This is a very good way to set things up because of the individual benefits of Canvas and WebGL. The benefit of WebGL is simple: it's able to utilize the system GPU, making it much more powerful than Canvas for rendering. The downside is that WebGL requires a very specific environment to even run - namely a modern browser and compatible graphics card. Canvas runs on most newer browsers, and does not depend on system hardware.
+
+To get the best of both worlds, the solution is obvious: use WebGL when it's available, and fall back to Canvas if not. A rudimentary WebGL detector is included in Three.js, which most demo projects seem to use to display an error message when WebGL isn't available. I repurposed this detector into the app initialization code so that when the renderer is created, if WebGL is detected the WebGLRenderer type is used; otherwise the CanvasRenderer is fallen back on.
diff --git a/_posts/2012-08-11-screenshots.md b/_posts/2012-08-11-screenshots.md
new file mode 100644
index 0000000..795d7ec
--- /dev/null
+++ b/_posts/2012-08-11-screenshots.md
@@ -0,0 +1,7 @@
+Here's some screeshots demonstrating the application in action. They all make use of 2-level recursion, as well as operations that scale and rotate the recursive child cubes.
+
+
+
+
+
+
diff --git a/images/3dr1.png b/images/3dr1.png
new file mode 100644
index 0000000..e895dec
Binary files /dev/null and b/images/3dr1.png differ
diff --git a/images/3dr2.png b/images/3dr2.png
new file mode 100644
index 0000000..41c71b1
Binary files /dev/null and b/images/3dr2.png differ
diff --git a/images/3dr3.png b/images/3dr3.png
new file mode 100644
index 0000000..75fff4c
Binary files /dev/null and b/images/3dr3.png differ
diff --git a/images/3dr4.png b/images/3dr4.png
new file mode 100644
index 0000000..5e9c533
Binary files /dev/null and b/images/3dr4.png differ
diff --git a/images/3dr5.png b/images/3dr5.png
new file mode 100644
index 0000000..802fcfb
Binary files /dev/null and b/images/3dr5.png differ
diff --git a/images/3dr6.png b/images/3dr6.png
new file mode 100644
index 0000000..ea001ab
Binary files /dev/null and b/images/3dr6.png differ
diff --git a/images/checker.png b/images/checker.png
new file mode 100644
index 0000000..ab14540
Binary files /dev/null and b/images/checker.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..1dad9c1
--- /dev/null
+++ b/index.html
@@ -0,0 +1,11 @@
+---
+layout: default
+title: 3DRecursion
+---
+
+{% for post in site.posts limit:5 %}
+