Skip to main content

Breathing gymnastics application

Project description

Nafas: A Breathing Gymnastics Application


PyPI version Codecov built with Python3 GitHub repo size Discord Channel

Overview

Breathing gymnastics is a system of breathing exercises that focuses on the treatment of various diseases and general health promotion. Nafas is a collection of breathing gymnastics designed to reduce the exhaustion of long working hours. With multiple breathing patterns, Nafas helps you find your way to a detoxified energetic workday and also improves your concentration by increasing the oxygen level. No need to walk away to take a break, just sit comfortably, run Nafas and let the journey begin. Nafas means breath in Persian.

Nafas offers a selection of predefined breathing exercise programs. Each program consists of multiple cycles. The exercises begin with a gentle preparation phase to help users settle in and focus, followed by a series of timed inhales and exhales. Between these breaths, the programs incorporate deliberate pauses that allow users to retain and sustain their breath. These cycles aim to enhance both physical and mental well-being.

Nafas Programs' Cycle

Nafas Programs' Cycle

Open Hub
PyPI Counter
Github Stars
Branch master dev
CI
Code Quality CodeFactor

Installation

Source Code

PyPI

Usage

ℹ️ You can use nafas, python -m nafas to run this program

ℹ️ Checkout the available programs in PROGRAMS.md

Version

nafas --version

Basic

nafas

Silent Mode

ℹ️ This mode will disable the sound playing system

nafas --silent

Speaker

⚠️ This mode may not be supported on all systems

ℹ️ Customize your experience by choosing from a set of speaker voices to guide you through the exercises

ℹ️ The default speaker is us1

ℹ️ You can specify the speaker using the --speaker:

nafas --speaker=us1

Choose your speaker from the following list:

ID Description
us1 Feminine voice with a US accent
us2 Masculine voice with a US accent
in1 Feminine voice with an Indian accent
in2 Masculine voice with an Indian accent
cn1 Feminine voice with a Chinese accent
cn2 Masculine voice with a Chinese accent
ca1 Feminine voice with a Canadian accent
ca2 Masculine voice with a Canadian accent
au1 Feminine voice with an Australian accent
au2 Masculine voice with an Australian accent
uk1 Feminine voice with a British accent
uk2 Masculine voice with a British accent

Skip Intro

ℹ️ This mode will skip the introduction

nafas --skip-intro

Color

⚠️ This mode may not be supported on all systems

ℹ️ This mode will change the text color

ℹ️ Valid choices: [black, red, green, yellow, blue, magenta, cyan, white, lightblack, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan, lightwhite]

ℹ️ The default color is white

nafas --color="red"

Background Color

⚠️ This mode may not be supported on all systems

ℹ️ This mode will change the background color

ℹ️ Valid choices: [black, red, green, yellow, blue, magenta, cyan, white, lightblack, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan, lightwhite]

ℹ️ The default background color is black

nafas --color="red" --bg-color="blue"

Intensity

⚠️ This mode may not be supported on all systems

ℹ️ This mode will change the text intensity

ℹ️ Valid choices: [normal, bright, dim]

ℹ️ The default intensity is normal

nafas --color="red" --intensity="bright"

Custom Config

ℹ️ Users can either generate a starter configuration file or load their own custom configurations

Generate a Starter Config

ℹ️ This will create a base configuration file at the specified path

nafas --generate-config="new_program.json"

Load an Existing Config

nafas --config="program1.json"

Config example:

{
    "name": "program1",
    "unit": 2,
    "pre": 3,
    "cycle": 10,
    "ratio": {
        "inhale": 2,
        "exhale": 2,
        "retain": 3,
        "sustain": 4
    }
}

Screen Record

Screen Record

Issues & Bug Reports

Just fill an issue and describe it. We'll check it ASAP!

  • Please complete the issue template

You can also join our discord server

Discord Channel

References

1- Prana Breath
2- Rickard, Kathleen Benjamin, Dorothy J. Dunn, and Virginia M. Brouch. "Breathing techniques associated with improved health outcomes." (2015).
3- Zaccaro, Andrea, Andrea Piarulli, Marco Laurino, Erika Garbella, Danilo Menicucci, Bruno Neri, and Angelo Gemignani. "How breath-control can change your life: a systematic review on psycho-physiological correlates of slow breathing." Frontiers in human neuroscience 12 (2018): 353.
4- Brook, Robert D., Lawrence J. Appel, Melvyn Rubenfire, Gbenga Ogedegbe, John D. Bisognano, William J. Elliott, Flavio D. Fuchs et al. "Beyond medications and diet: alternative approaches to lowering blood pressure: a scientific statement from the American Heart Association." Hypertension 61, no. 6 (2013): 1360-1383.
5- Russo, Marc A., Danielle M. Santarelli, and Dean O’Rourke. "The physiological effects of slow breathing in the healthy human." Breathe 13, no. 4 (2017): 298-309.
6- Bujatti, M., and P. Biederer. "Serotonin, noradrenaline, dopamine metabolites in transcendental meditation-technique." Journal of Neural Transmission 39, no. 3 (1976): 257-267.
7- Martarelli, Daniele, Mario Cocchioni, Stefania Scuri, and Pierluigi Pompei. "Diaphragmatic breathing reduces exercise-induced oxidative stress." Evidence-Based Complementary and Alternative Medicine 2011 (2011).
8- DrWeil, Integrative Medicine & Healthy Living
9- Human Givens Institute
10- This 2-Minute Breathing Exercise Can Help You Make Better Decisions
11- Using 5-5-5 Breathing to Calm Down
12- Free Text-To-Speech and Text-to-MP3 for US English
13- Pranayama Breathing Techniques and Tips
14- Box Breathing Benefits and Techniques
15- Box breathing: How to do it, benefits, and tips
16- Breathing at a rate of 5.5 breaths per minute with equal inhalation-to-exhalation ratio increases heart rate variability
17- Coherent Breathing Timer - 6 Breaths Per Minute | 5 Seconds in / 5 Seconds Out | With Bells
18- Pranayama : Breathing Exercise

Cite

If you use Nafas in your research, we would appreciate citations to the following paper:

Sabouri, Sadra, and Sepand Haghighi. "Nafas: Breathing Gymnastics Application." arXiv preprint arXiv:2412.04667 (2024).

@article{sabouri2024nafas,
  title={Nafas: Breathing Gymnastics Application},
  author={Sabouri, Sadra and Haghighi, Sepand},
  journal={arXiv preprint arXiv:2412.04667},
  year={2024}
}

Show Your Support

Star This Repo

Give a ⭐️ if this project helped you!

Donate to Our Project

Bitcoin

1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy

Ethereum

0xcD4Db18B6664A9662123D4307B074aE968535388

Litecoin

Ldnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ

Doge

DDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh

Tron

TCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7

Ripple

rN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq

Binance Coin

bnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef

Tether

0xcD4Db18B6664A9662123D4307B074aE968535388

Dash

Xd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s

Stellar

GALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL

Zilliqa

zil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5

Coffeete

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

1.5 - 2026-05-04

Added

  • Fire program
  • Retention program
  • Swooning program
  • --generate-config argument
  • --color argument
  • --bg-color argument
  • --intensity argument

Changed

  • README.md modified
  • Python 3.14 added to test.yml
  • Test system modified
  • CLI functions modified

1.4 - 2025-07-29

Added

  • ca1 speaker audio files
  • ca2 speaker audio files
  • au1 speaker audio files
  • au2 speaker audio files
  • uk1 speaker audio files
  • uk2 speaker audio files

Changed

  • Build script updated
  • README.md modified
  • line function renamed to print_line
  • bpm_calc function renamed to calculate_bpm
  • time_calc function renamed to calculate_time
  • time_average_calc function renamed to calculate_average_time
  • time_convert function renamed to convert_time
  • left_justify function renamed to justify_left
  • justify function renamed to justify_text
  • sound_check function renamed to check_sound
  • nafas_description_print function renamed to print_nafas_description
  • program_details_print function renamed to print_program_details
  • input_filter function renamed to filter_input
  • get_input_standard function renamed to get_standard_input
  • run function renamed to run_program

1.3 - 2025-06-27

Added

  • --speaker argument
  • us2 speaker audio files
  • in1 speaker audio files
  • in2 speaker audio files
  • cn1 speaker audio files
  • cn2 speaker audio files

Changed

  • README.md modified

1.2 - 2025-06-04

Added

  • Coherent program
  • Breaths Per Minute (BPM)

Changed

  • description_print function renamed to nafas_description_print
  • program_description_print function renamed to program_details_print
  • Python typing features added to all modules
  • Python 3.6 support dropped
  • Test system modified
  • PROGRAMS.md updated

1.1 - 2025-04-10

Added

  • Survey form
  • --config argument
  • --skip-intro argument

Changed

  • README.md modified

1.0 - 2025-03-10

Added

  • Calming3 program
  • Box program

Changed

  • README.md modified
  • String templates modified
  • PROGRAMS.md updated

0.9 - 2025-01-06

Added

  • Energizing program
  • PROGRAMS.md
  • Cautions message

Changed

  • README.md modified
  • AUTHORS.md updated
  • Menu updated
  • Exit bug fixed
  • Program details updated

0.8 - 2024-11-04

Added

  • Balancing program
  • --silent argument
  • clear_screen function

Changed

  • GitHub actions are limited to the dev and master branches
  • Restart mode updated
  • Exit bug fixed
  • Python 3.13 added to test.yml
  • Messages and templates moved to params.py

0.7 - 2024-08-27

Added

  • feature_request.yml template
  • config.yml for issue template
  • sound_check function
  • SECURITY.md

Changed

  • Silence added to the start of sounds
  • Bug report template modified
  • playsound replaced with nava
  • nava added to requirements.txt
  • Test system modified
  • Build system modified
  • get_input_standard function modified
  • Python 3.11 added to test.yml
  • Python 3.12 added to test.yml
  • Python 3.5 support dropped
  • CLI mode updated
  • Exit message updated
  • README.md modified

0.6 - 2022-06-22

Added

  • Calming2 program

Changed

  • Calming program renamed to Calming1
  • Logo updated
  • README.md modified

0.5 - 2022-05-09

Added

  • Decision-Making program
  • time_calc function
  • time_average_calc function

Changed

  • AUTHORS.md updated
  • License updated
  • README.md modified
  • Python 3.10 added to test.yml
  • time_convert function modified
  • get_input_standard function modified
  • Menu updated
  • Relax program renamed to Relax1
  • 4-7-8 program renamed to Relax2
  • 7-11 program renamed to Relax3

0.4 - 2021-05-12

Added

  • start.wav
  • well_done.wav
  • preparing.wav
  • requirements-splitter.py
  • 4-7-8 program
  • 7-11 program

Changed

  • Sound speaker changed
  • Test system modified
  • Menu optimized

0.3 - 2021-02-09

Changed

  • Sounds bug in pypi fixed
  • Icon modified
  • Menu optimized

0.2 - 2021-01-29

Added

  • _playsound_async function
  • play_sound function
  • inhale.wav
  • exhale.wav
  • sustain.wav
  • retain.wav
  • get_sound_path function
  • program_description_print function
  • time_convert function

Changed

  • Menu optimized
  • Test system modified
  • get_program_dict function renamed to get_program_data
  • program_dict parameter renamed to program_data
  • input_dict parameter renamed to input_data
  • README.md updated

0.1 - 2020-10-30

Added

  • Clear Mind program
  • Relax program
  • Calming program
  • Power program
  • Anti-Stress program
  • Anti-Appetite program
  • Cigarette Replace program

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nafas-1.5.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nafas-1.5-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

File details

Details for the file nafas-1.5.tar.gz.

File metadata

  • Download URL: nafas-1.5.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for nafas-1.5.tar.gz
Algorithm Hash digest
SHA256 06907700be445ab5512013259e0269287669237d37f6094b6f0d7ebf17cafa73
MD5 bb69c29e231193c7a07f3f749532fa44
BLAKE2b-256 09558d526e8176ccd8150324778995db27d5cde22f2579d87b2bc448ce613ebd

See more details on using hashes here.

File details

Details for the file nafas-1.5-py3-none-any.whl.

File metadata

  • Download URL: nafas-1.5-py3-none-any.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for nafas-1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 26c22f702392f6e7e1ec9d29665f9e943f1282d58e2998fa09b49358f5cd1cdc
MD5 d28d9f4be76a73c079a45d05aa67ee0f
BLAKE2b-256 56f90006256ee8187c52b9623832a557da45f1d820964c3d25738701e653c76f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page