diff --git a/demo/main.cpp b/demo/main.cpp
index 1ea52342c62302ff1d577836e1e7df3a36b7fbca..e02b23fb279d77683751241ae19418eab9675d47 100644
--- a/demo/main.cpp
+++ b/demo/main.cpp
@@ -70,7 +70,7 @@ int main(int argc, char* argv[]) {
 
 	// in a supprise to no one it's a triangle
 //	auto mesh = fggl::data::make_quad_xy();
-	auto mesh = fggl::data::make_cube();
+	auto mesh = fggl::data::make_point();
 	auto token = meshRenderer.upload(mesh);
 	token.pipeline = shader;
 	ecs.addComponent<fggl::gfx::MeshToken>(entity, token);
diff --git a/fggl/data/procedural.cpp b/fggl/data/procedural.cpp
index 0a5f5d881114003399dec20b1019847a5a6ce11c..14b5038df98ceb344e4784e047c24d14bc2c9d40 100644
--- a/fggl/data/procedural.cpp
+++ b/fggl/data/procedural.cpp
@@ -130,6 +130,139 @@ fggl::data::Mesh fggl::data::make_cube() {
 	return mesh;
 }
 
+fggl::data::Mesh fggl::data::make_slope() {
+
+	// done as two loops, top loop is 0,1,2,3, bottom loop is 4,5,6,7
+	// FIXME remove 2 and 3 and renumber the index list accordingly
+	constexpr fggl::math::vec3 pos[] {
+		{-0.5,  0.5, -0.5}, // 0 TOP LOOP
+		{ 0.5,  0.5, -0.5}, // 1
+		{ 0.5,  0.5,  0.5}, // 2
+		{-0.5,  0.5,  0.5}, // 3
+		{-0.5, -0.5, -0.5}, // 4 BOTTOM LOOP
+		{ 0.5, -0.5, -0.5}, // 5
+		{ 0.5, -0.5,  0.5}, // 6
+		{-0.5, -0.5,  0.5}  // 7
+	};
+
+	constexpr int idx[] {
+		0, 7, 1, // ramp
+		7, 6, 1,
+		0, 1, 4, // side 0 - 1
+		5, 4, 1,
+		1, 6, 5, // ramp side 1
+		4, 7, 0, // ramp side 2
+		4, 5, 7, // bottom
+		7, 5, 6,
+	};
+
+	fggl::data::Mesh mesh;
+	int colIdx[8];
+	for ( int i=0; i < 8; ++i ) {
+		Vertex vert{};
+		vert.posititon = pos[i];
+		vert.colour = fggl::math::vec3(1.0f, 1.0f, 1.0f);
+		colIdx[ i ] = mesh.pushVertex( vert );
+	}
+
+	for ( auto i : idx ){
+		mesh.pushIndex( colIdx[i] );
+	}
+
+	return mesh;
+}
+
+fggl::data::Mesh fggl::data::make_ditch() {
+
+	// done as two loops, top loop is 0,1,2,3, bottom loop is 4,5,6,7
+	// FIXME remove 2 and renumber the index list accordingly
+	constexpr fggl::math::vec3 pos[] {
+		{-0.5,  0.5, -0.5}, // 0 TOP LOOP
+		{ 0.5,  0.5, -0.5}, // 1
+		{ 0.5,  0.5,  0.5}, // 2
+		{-0.5,  0.5,  0.5}, // 3
+		{-0.5, -0.5, -0.5}, // 4 BOTTOM LOOP
+		{ 0.5, -0.5, -0.5}, // 5
+		{ 0.5, -0.5,  0.5}, // 6
+		{-0.5, -0.5,  0.5}  // 7
+	};
+
+	constexpr int idx[] {
+		0, 3, 1, // top
+		3, 6, 1,
+		0, 1, 4, // side 0 - 1
+		5, 4, 1,
+		1, 6, 5,
+		3, 7, 6,
+		0, 4, 3, // side 3 - 0
+		4, 7, 3,
+		4, 5, 7, // bottom
+		7, 5, 6,
+	};
+
+	fggl::data::Mesh mesh;
+	int colIdx[8];
+	for ( int i=0; i < 8; ++i ) {
+		Vertex vert{};
+		vert.posititon = pos[i];
+		vert.colour = fggl::math::vec3(1.0f, 1.0f, 1.0f);
+		colIdx[ i ] = mesh.pushVertex( vert );
+	}
+
+	for ( auto i : idx ){
+		mesh.pushIndex( colIdx[i] );
+	}
+
+	return mesh;
+}
+
+fggl::data::Mesh fggl::data::make_point() {
+
+	// done as two loops, top loop is 0,1,2,3, bottom loop is 4,5,6,7
+	constexpr fggl::math::vec3 pos[] {
+		{-0.5,  0.5, -0.5}, // 0 TOP LOOP
+		{ 0.5,  0.5, -0.5}, // 1
+		{ 0.5,  0.5,  0.5}, // 2
+		{-0.5,  0.5,  0.5}, // 3
+		{-0.5, -0.5, -0.5}, // 4 BOTTOM LOOP
+		{ 0.5, -0.5, -0.5}, // 5
+		{ 0.5, -0.5,  0.5}, // 6
+		{-0.5, -0.5,  0.5}  // 7
+	};
+
+	constexpr int idx[] {
+		0, 7, 5, // top
+		7, 6, 5,
+		0, 5, 4, // side 0 - 1
+	//	5, 4, 1,
+	//	1, 2, 5, // side 1 - 2
+	//	2, 6, 5,
+	//	3, 7, 2, // side 2 - 3
+	//	2, 7, 6,
+		0, 4, 7, // side 3 - 0
+	//	4, 7, 3,
+		4, 5, 7, // bottom
+		7, 5, 6,
+	};
+
+	fggl::data::Mesh mesh;
+	int colIdx[8];
+	for ( int i=0; i < 8; ++i ) {
+		Vertex vert{};
+		vert.posititon = pos[i];
+		vert.colour = fggl::math::vec3(1.0f, 1.0f, 1.0f);
+		colIdx[ i ] = mesh.pushVertex( vert );
+	}
+
+	for ( auto i : idx ){
+		mesh.pushIndex( colIdx[i] );
+	}
+
+	return mesh;
+}
+
+
+
 /*
 constexpr float cubeVertex[8 * 3] = {
 	0, 0, 0,
diff --git a/fggl/data/procedural.hpp b/fggl/data/procedural.hpp
index 4a8f183da41b94a169f8bf83416fc1d6c6cc794d..1e39d9437038a8f7b10c9d36f02e44c93e90dacb 100644
--- a/fggl/data/procedural.hpp
+++ b/fggl/data/procedural.hpp
@@ -14,4 +14,6 @@ namespace fggl::data {
 
 	// blockout shapes
 	Mesh make_slope();
+	Mesh make_ditch();
+	Mesh make_point();
 }
diff --git a/fggl/gfx/renderer.cpp b/fggl/gfx/renderer.cpp
index 37d93fce4cb1a37226c73f52d1670eee5b94b1e8..635021ea1731d1b213707f3d40ef21a5c60066a5 100644
--- a/fggl/gfx/renderer.cpp
+++ b/fggl/gfx/renderer.cpp
@@ -79,7 +79,7 @@ void MeshRenderer::render(const Window& window, const fggl::ecs::ECS& ecs, float
 
     total += dt;
 
-    glm::mat4 view = glm::lookAt( glm::vec3 ( 0.0f, -3.0f, 3.0f ), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f) );
+    glm::mat4 view = glm::lookAt( glm::vec3 ( 0.0f, 3.0f, 3.0f ), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f) );
     glm::mat4 proj = glm::perspective( glm::radians(45.0f), 1280.0f/720.0f, 0.1f, 100.0f);
 //    glm::mat4 proj = glm::mat4(1.0f);