 #endif
 // CUDA
 #include <cuda_runtime.h>
-#include <cuda_gl_interop.h>
+#include <cuda_gl_interop.h> // interop functionality
 #include <helper_cuda.h>
-#include <helper_cuda_gl.h>
+#include <helper_cuda_gl.h> // checkCudaErrors()
 // COMMON
 #include <aligned_allocator.h>
-// Headers
+// Object Headers
 #include "boid.h"
 #include "flock.h"
 #include "vector3f.h"
 
-// Simulation Variables
+// Rotation of X-axis camera perspective
 double rX = 0.0;
+// Rotation of Y-axis camera perspective
 double rY = 0.0;
+// Time var to increment function over time
 float sim_time = 0.0;
+// Number of boids in simulation
 int n = 0;
-// Constants
+// Monitor metrics
 const unsigned int window_width = 512;
 const unsigned int window_height = 512;
+// Mesh metrics
 const unsigned int mesh_width = 256;
 const unsigned int mesh_height = 256;
-//VBO
+// OpenGL Vertex Buffer Object
 GLuint positionsVBO;
 struct cudaGraphicsResource* positionsVBO_CUDA;
 
+/* Kernel function sent to GPU that does calculations required in boid algorithm*/
 __global__ void kernel(float4* positions, unsigned int width, unsigned int height, float t) {
    unsigned int x = blockIdx.x * blockDim.x + threadIdx.x;
    unsigned int y = blockIdx.y * blockDim.y + threadIdx.y;

  glutPostRedisplay();
}

__host__ void idleSim() {
  glutPostRedisplay();
}

#include <ctype.h>
#include <assert.h>
#include <vector>
// OpenGL
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
