 	__constant__ float StepSize = 0.3f;
 	__constant__ float Invalid = 3600000000;
 	__constant__ int CellToSeedRatio = 10;
+	__constant__ unsigned int HalfNumNeighbors = 4;
 	__device__ const float TWO_PI = 2.0f*3.14159265358979323846f;
 
 	// ~~~~~~~~~~~~~~~~~~~~ Random Functions ~~~~~~~~~~~~~~~~~~~~ //

		int particleIdx = threadIdx.x;

		float3 pos = make_float3(seed.x, seed.y, 0);
		int numSteps = 100000;

		float3 v = make_float3(0, 0, 0);
		float valid;

		return AdvectParticle(position);
	}

	//// ~~~~~~~~~~~ FTLE Start Settings ~~~~~~~~~~~ //
	//__device__ float2 LoadAdvectFTLE(int2 origin)
	//{
	//	// Offset position by origin. Assume all blocks are in the seed range.
	//	int px = origin.x + blockIdx.x;
	//	int py = origin.y + blockIdx.y;
	//	float2 position = make_float2(px, py);


	//	return AdvectParticle(position);
	//}

	// ~~~~~~~~~~~~ Start Reference Particle Integration ~~~~~~~~~~~~ //
	__global__ void LoadAdvectReference(float2* positions, int2 seed)
	{
