In this report we discuss the concepts of geometric memory align- ment, geometric memory allocation and geometric memory mapping. We introduce block trees as an efficient data structure for representing geo- metrically aligned block allocation states. We introduce niche maps as an efficient means to find the right place to allocate a chunk of a given size whilst maintaining good packing and avoiding fragmentation. We intro- duce ledging as a process to deal with chunk sizes that are not a power of two. We discuss using block trees for memory mapping in the context of virtual memory management. We show how ledging can also be applied at the level of virtual memory in order to create fixed size virtual mem- ory spaces. Finally we discuss implementation of both geometric memory allocation as well as geometric memory mapping in hardware.