 }
 
 __host__ void Render() {
-  // Set Background Color
-  glClearColor(0.4, 0.4, 0.4, 1.0);
+  
   // Clear screen
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-  // Reset transformations
+  
+  glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
-  
+
   // Perspective modifications
   glRotatef(rX, 1.0, 0.0, 0.0);
   glRotatef(rY, 0.0, 1.0, 0.0);
-
-  drawBoid();
-
-  //h_flock.update();
+  
+  glClearColor(0.0, 0.0, 0.0, 0.0);
+  glClear(GL_COLOR_BUFFER_BIT);
+  glColor3f(1.0, 0.0, 0.0);
+  glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
+
+  glBindBuffer(GL_ARRAY_BUFFER, positionsVBO);
+  glVertexPointer(4, GL_FLOAT, 0, 0);
+  glEnableClientState(GL_VERTEX_ARRAY);
+  glDrawArrays(GL_POINTS, 0, width * height); // Where the magic happens
+  glDisableClientState(GL_VERTEX_ARRAY);
+  
+  // Switch Buffers
+  glutSwapBuffers();
+  glutPostRedisplay();
 }
 
 __host__ void Keyboard(int key, int x, int y) {

  // Create Window
  glutInit(&argc, argv);
  glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
  glutInitWindowSize(700, 700);
  glutInitWindowPosition(20, 20);
  glutCreateWindow("cuda-boids");

  // Allow Depth and Colors
  glEnable(GL_DEPTH_TEST);
  glEnable(GL_COLOR_MATERIAL);

  // Set the color of the background
  glClearColor(0.7f, 0.8f, 1.0f, 1.0f);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  glEnable(GL_NORMALIZE);
}

// Called when OpenGL Window is resized to handle scaling

         return 1;
      }
   }
   
   // Print out GPU Details
   printDeviceProps();
  
   // OpenGL / GLUT Initialization
   GLInit(argc, argv);
   
   // Create VBO
   createVBO(&positionsVBO, positionsVBO_CUDA, cudaGraphicsMapFlagsWriteDiscard);

   // Run initial CUDA step
   checkCudaErrors( cudaGLSetGLDevice(0) );
   runCUDA(&positionsVBO_CUDA); 
   
   // Start GLUT Loop
   glutMainLoop();
   
   //onGLUTExit();

  return 0;
}
