The Imaginal Gallery
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw8E6FBC59_653B_4DCC_B69C_D41613B46E12',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
There are places words cannot quite reach.
Sometimes an image can.
The Imaginal Gallery is a gathering place for visual explorations that have emerged during the creation of The Geometry of Souls.
Some began with sacred geometry itself — ancient forms reimagined through colour, light, landscape and atmosphere. Others arose from memory, photography, meditation, metaphor, humour, conversation and the unexpected pathways that open when imagination is allowed to wander.
We use the word imaginal deliberately. It does not mean simply imaginary, or unreal. Here, the imaginal is the realm in which image becomes a way of exploring meaning — where an inner perception, a remembered place, an ancient symbol or an unanswered question can be given visible form.
Not every image in this gallery is intended to explain something. Some may illuminate ideas encountered elsewhere in this work. Some are contemplations in their own right. Some simply arrived and asked to be made. They need not be interpreted.
Look slowly.
Notice what draws you.
Allow an image to remain mysterious if it wishes.
For sometimes the purpose of an image is not to provide an answer, but to open another door.
Photography has been part of my own way of seeing for much of my life, and some of the visual threads gathered here reach back across decades. Others belong entirely to the present and to new forms of collaborative image-making. Together they form not a single style or chronology, but an evolving visual conversation between experience, imagination and the geometry underlying this work.
Begin with The Void, and allow the geometry to unfold.
The nine images move automatically through a gentle sequence, each fading into the next before returning once more to The Void. If you wish to pause, revisit or linger with an image, use the small dots beneath the presentation. The transition may take a few moments.
Take a gentle breath. There is nowhere to hurry.
The Void · The Point · The Circle · Vesica Piscis · The Seed of Life · The Flower of Life · The Spiral · The Golden Mean Spiral · The Cardioid · returning to The Void
The Eternal Return: Infinity. Möbius Strip. The Toroid
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwFD237A64_8015_47BD_8CC7_F4818CA97875',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw749BA449_BF30_45C9_A09C_767FC8A30620',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw64C6E159_E872_4216_A7FE_21EB34220EC4',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwFFBD6A45_3E1C_4690_B17F_FA5BC50777F7',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
See With The Heart
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw7272B9D0_08D7_4266_A913_CFC5B5BD3EC9',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />