A guided somatic body-scan meditation, plus a prompt that turns any LLM into a gentle body-signal interpreter.
Many of us are better at thinking about feelings than feeling them. We notice
a tight chest, heavy legs, or a lump in the throat — but we don't always know
what those sensations are telling us. feltsense is a small, free toolkit for
building that skill, sometimes called interoceptive awareness. It is
especially aimed at people who find emotions hard to name (alexithymia), but it's
for anyone curious about the conversation their body is already having with them.
It has two parts:
- 🎧 A ~12-minute audio body scan (
meditation/somatic_body_scan.mp3) that walks you head-to-toe, inviting you to relax and notice each region — then softly names the emotions research links to that area. - 🤖 A copy-paste LLM prompt (
prompts/body-signal-interpreter.md) that carries the whole research key with it, so you can describe what you noticed and have ChatGPT / Claude / Gemini reflect possible emotions back to you.
- Listen. Download and play
meditation/somatic_body_scan.mp3. Find a quiet spot, sit or lie down, and let it guide you. No app, no account, no internet needed once you have the file. - Notice. As you go, just register what's there in each area — warmth, tightness, buzzing, heaviness, or nothing at all. Numbness is information too.
- (Optional) Interpret. Open
prompts/body-signal-interpreter.md, paste the prompt into any chat LLM, and describe what you felt ("tight chest, heavy legs, lump in throat"). It will gently suggest what those sensations might mean — tentatively, never as a diagnosis.
Your own felt sense is always the final authority. The science below is a map, and you are the territory.
The body scan and the interpreter prompt are both built on one well-known study:
Nummenmaa, L., Glerean, E., Hari, R., & Hietanen, J. K. (2014). Bodily maps of emotions. Proceedings of the National Academy of Sciences, 111(2), 646–651. https://doi.org/10.1073/pnas.1321664111
Across five experiments with 701 participants, people colored in where they felt bodily activity increase or decrease while experiencing different emotions. The resulting maps were statistically distinct for each emotion and consistent across Western European and East Asian cultures — suggesting that the link between a felt emotion and a felt body region is, to a meaningful degree, universal.
The figure below (Figure 2 from the paper) is the heart of it. Warm colors = sensation increasing; cool colors = sensation decreasing:
Figure 2 from Nummenmaa, Glerean, Hari & Hietanen (2014), "Bodily maps of emotions," PNAS 111(2):646–651. © the authors / PNAS. Reproduced unmodified for non-commercial and educational use under the PNAS open-access option and the authors' stated reuse terms.
You can read the full open-access paper here: https://www.pnas.org/doi/10.1073/pnas.1321664111
prompts/body-signal-interpreter.md contains a ready-to-paste prompt. It tells
the model to:
- treat the maps above as a probabilistic guide, not a rulebook,
- offer emotions your sensations are consistent with, in tentative language,
- treat numbness or "nothing" as valid data,
- ask a gentle follow-up so you check the guess against your own sense,
- and stay clearly within the limits of a self-reflection aid (not therapy).
Works best right after the body scan, while the sensations are fresh. You can paste raw notes — no full sentences required.
You don't need this to use the meditation — the finished MP3 is already in the repo and plays anywhere. You only need the steps below if you want to change the wording, pacing, or voice and rebuild the file.
pip install -r requirements.txt # edge-tts + pydub
# also install ffmpeg and put it on your PATH: https://ffmpeg.org/download.html
python somatic_body_scan.pyThis regenerates both meditation/somatic_body_scan.mp3 and the human-readable
meditation/somatic_body_scan_script.md.
- The narration lives as a list of
(text, pause_after_seconds)segments at the top ofsomatic_body_scan.py— easy to re-word or re-pace. Long pauses (12–16s) are the "noticing" gaps. - Voice, rate, and pitch are single editable constants near the top (default
en-GB-SoniaNeural, a calm British voice). List other free voices withedge-tts --list-voices. - Audio is rendered by edge-tts (free Microsoft neural voices; requires internet at generation time only) and assembled with pydub + ffmpeg.
| Path | What it is |
|---|---|
meditation/somatic_body_scan.mp3 |
The finished ~12-min guided body scan. Just play it. |
meditation/somatic_body_scan_script.md |
The full narration text + pause timings. |
prompts/body-signal-interpreter.md |
Copy-paste prompt to turn any LLM into a gentle interpreter. |
somatic_body_scan.py |
Generator script — edit to change wording, pacing, or voice. |
requirements.txt |
Python deps for regenerating the audio. |
assets/bodily_maps_of_emotions_fig2.jpeg |
Figure 2 of the source paper (see attribution above). |
CITATION.cff |
Citation metadata. |
LICENSE |
CC BY-NC 4.0 (plus the third-party note for the figure). |
feltsense is a self-reflection and education aid. It is not therapy,
diagnosis, or medical/psychological advice, and the LLM interpreter is not a
clinician. Bodily sensations also have ordinary physical causes (hunger,
caffeine, illness, temperature, exercise) — hold any emotional reading lightly.
If you're struggling with distress you can't manage alone, or thoughts of harming
yourself or others, please reach out to a trusted person or a local crisis line
or professional.
- This project (narration, code, audio, prompts, docs) is licensed
CC BY-NC 4.0 — share and
adapt freely for non-commercial purposes, with credit. See
LICENSE. - Figure 2 is © the authors / PNAS, reproduced unmodified for non-commercial/educational use under the paper's open-access option and the authors' reuse terms. All credit for the underlying science belongs to Nummenmaa, Glerean, Hari & Hietanen.
If feltsense helps you, the kindest thing you can do is point a friend who
struggles to name their feelings toward it. 💛
