diff --git a/CMakeCache.txt b/CMakeCache.txt
new file mode 100644
index 0000000..bb69aa4
--- /dev/null
+++ b/CMakeCache.txt
@@ -0,0 +1,138 @@
+# This is the CMakeCache file.
+# For build in directory: c:/Users/bkyd/dev/inferno-hart
+# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Semicolon separated list of supported configuration types, only
+// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
+// else will be ignored.
+CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
+
+//Value Computed by CMake.
+CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/Users/bkyd/dev/inferno-hart/CMakeFiles/pkgRedirects
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=inferno
+
+//No help, variable specified on the command line.
+CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=C:Users/bkyd/dev\\vcpkg/scripts/buildsystems/vcpkg.cmake
+
+//Automatically copy dependencies into the output directory for
+// executables.
+VCPKG_APPLOCAL_DEPS:BOOL=ON
+
+//The directory which contains the installed libraries for each
+// triplet
+VCPKG_INSTALLED_DIR:PATH=C:/Users/bkyd/dev/vcpkg/installed
+
+//The path to the vcpkg manifest directory.
+VCPKG_MANIFEST_DIR:PATH=
+
+//Use manifest mode, as opposed to classic mode.
+VCPKG_MANIFEST_MODE:BOOL=OFF
+
+//Appends the vcpkg paths to CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH
+// and CMAKE_FIND_ROOT_PATH so that vcpkg libraries/packages are
+// found after toolchain/system libraries/packages.
+VCPKG_PREFER_SYSTEM_LIBS:BOOL=OFF
+
+//Enable the setup of CMAKE_PROGRAM_PATH to vcpkg paths
+VCPKG_SETUP_CMAKE_PROGRAM_PATH:BOOL=ON
+
+//Vcpkg target triplet (ex. x86-windows)
+VCPKG_TARGET_TRIPLET:STRING=x86-windows
+
+//Enables messages from the VCPKG toolchain for debugging purposes.
+VCPKG_VERBOSE:BOOL=OFF
+
+//(experimental) Automatically copy dependencies into the install
+// target directory for executables. Requires CMake 3.14.
+X_VCPKG_APPLOCAL_DEPS_INSTALL:BOOL=OFF
+
+//(experimental) Add USES_TERMINAL to VCPKG_APPLOCAL_DEPS to force
+// serialization.
+X_VCPKG_APPLOCAL_DEPS_SERIALIZED:BOOL=OFF
+
+//The directory which contains the installed libraries for each
+// triplet
+_VCPKG_INSTALLED_DIR:PATH=C:/Users/bkyd/dev/vcpkg/installed
+
+//Value Computed by CMake
+inferno_BINARY_DIR:STATIC=C:/Users/bkyd/dev/inferno-hart
+
+//Value Computed by CMake
+inferno_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+inferno_SOURCE_DIR:STATIC=C:/Users/bkyd/dev/inferno-hart
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/bkyd/dev/inferno-hart
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=25
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=0
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Visual Studio 14 2015
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/bkyd/dev/inferno-hart
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-3.25
+//ADVANCED property for variable: CMAKE_TOOLCHAIN_FILE
+CMAKE_TOOLCHAIN_FILE-ADVANCED:INTERNAL=1
+//Install the dependencies listed in your manifest:
+//\n If this is off, you will have to manually install your dependencies.
+//\n See https://github.com/microsoft/vcpkg/tree/master/docs/specifications/manifests.md
+// for more info.
+//\n
+VCPKG_MANIFEST_INSTALL:INTERNAL=OFF
+//ADVANCED property for variable: VCPKG_VERBOSE
+VCPKG_VERBOSE-ADVANCED:INTERNAL=1
+//Making sure VCPKG_MANIFEST_MODE doesn't change
+Z_VCPKG_CHECK_MANIFEST_MODE:INTERNAL=OFF
+//Vcpkg root directory
+Z_VCPKG_ROOT_DIR:INTERNAL=C:/Users/bkyd/dev/vcpkg
+
diff --git a/CMakeFiles/3.23.2/CMakeSystem.cmake b/CMakeFiles/3.23.2/CMakeSystem.cmake
new file mode 100644
index 0000000..0c9a98e
--- /dev/null
+++ b/CMakeFiles/3.23.2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Windows-10.0.19044")
+set(CMAKE_HOST_SYSTEM_NAME "Windows")
+set(CMAKE_HOST_SYSTEM_VERSION "10.0.19044")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
+
+include("C:/Users/bkyd/dev/vcpkg/scripts/buildsystems/vcpkg.cmake")
+
+set(CMAKE_SYSTEM "Windows-10.0.19044")
+set(CMAKE_SYSTEM_NAME "Windows")
+set(CMAKE_SYSTEM_VERSION "10.0.19044")
+set(CMAKE_SYSTEM_PROCESSOR "AMD64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/CMakeFiles/3.23.2/VCTargetsPath.vcxproj b/CMakeFiles/3.23.2/VCTargetsPath.vcxproj
new file mode 100644
index 0000000..5d61c5a
--- /dev/null
+++ b/CMakeFiles/3.23.2/VCTargetsPath.vcxproj
@@ -0,0 +1,27 @@
+
+
+
+
+ Debug
+ Win32
+
+
+
+ {F3FC6D86-508D-3FB1-96D2-995F08B142EC}
+ Win32Proj
+ Win32
+
+
+
+ Utility
+ MultiByte
+ v140
+
+
+
+
+ echo VCTargetsPath=$(VCTargetsPath)
+
+
+
+
diff --git a/CMakeFiles/3.25.0-rc2/VCTargetsPath.vcxproj b/CMakeFiles/3.25.0-rc2/VCTargetsPath.vcxproj
new file mode 100644
index 0000000..5d61c5a
--- /dev/null
+++ b/CMakeFiles/3.25.0-rc2/VCTargetsPath.vcxproj
@@ -0,0 +1,27 @@
+
+
+
+
+ Debug
+ Win32
+
+
+
+ {F3FC6D86-508D-3FB1-96D2-995F08B142EC}
+ Win32Proj
+ Win32
+
+
+
+ Utility
+ MultiByte
+ v140
+
+
+
+
+ echo VCTargetsPath=$(VCTargetsPath)
+
+
+
+
diff --git a/CMakeFiles/CMakeOutput.log b/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..777c463
--- /dev/null
+++ b/CMakeFiles/CMakeOutput.log
@@ -0,0 +1 @@
+The system is: Windows - 10.0.19044 - AMD64
diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/README.md b/README.md
index d141c53..a56ca1b 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,32 @@ This combined with it's full functionality through Julia makes Inferno HART a ve
## Features
+## Building
+
+Create a build directory `inferno-hart/build/`
+
+### Windows
+
+Install [VCPKG](https://vcpkg.io/en/getting-started.html)
+- Install OpenGL
+- Install GLFW3
+
+`cd build`
+
+Set up compiler with `cmake .. "-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake" -G "VS Version"`
+
+Compile with `cmake --build . --config Release/Debug/RelDebInfo`
+
+## Linux (x64)
+
+Install GLFW3 via your favorite package manager
+
+`cd build`
+
+Set up compiler with `cmake ..`
+
+compile with `make -j[threads]`
+
## Technologies
- OpenGL, utilised with GLAD and GLFW