GOLIAT GUI showing real-time progress monitoring. Scroll down to see the online monitoring website and Bash shell!
GOLIAT is a Python framework that automates electromagnetic field (EMF) dosimetry simulations from start to finish. Calculate Specific Absorption Rate (SAR) in digital human phantoms with minimal manual intervention, whether you're simulating a phone call (near-field) or environmental exposure (far-field).
Perfect for: Researchers, compliance engineers, and anyone studying EMF exposure in biological tissues.
- β‘ Zero manual scene building β Phantoms, antennas, and materials load automatically
- π Reproducible β Configuration-driven workflow ensures consistent results
- βοΈ Cloud-ready β Scale from local testing to 100s of parallel cloud simulations
- π Analysis built-in β Get plots and detailed SAR reports
- π¨ GUI included β Monitor progress in real-time with ETA tracking
- π€ AI Assistant β Query codebase and documentation with natural language
This software is written for subtask 1.5 of 5G expOsure, causaL effects, and rIsk perception through citizen engAgemenT (GOLIAT) funded by the European Union as part of the CLUE-H consortium to study health effects of radio-frequency electromagnetic fields. Subtask 1.5 is central to the project to relate incident fields to absorption values inside of humans.
|
Simulate devices near the body (phones, wearables). Automatic antenna placement with customizable positions and orientations. Plug-and-play components for phantoms, materials, gridding, and sources. Extend easily for custom scenarios. Extract whole-body SAR, localized peaks (10g), and tissue-specific metrics. Auto-generate heatmaps and statistical reports. Turn results into a draft paper instantly. Generates a fully compiled LaTeX PDF with all plots, tables, and statistics organized for peer review. |
Environmental exposure from plane waves. Supports 6 incident directions and multiple polarizations per frequency.
Interactive GUI with progress bars, ETA estimation, and live logs. Optional web dashboard for monitoring distributed studies. Integrated RAG-based assistant. Ask questions like "running a simulation", "adding a new phantom", or "how are logs handled" to get instant, context-aware answers. |
Prerequisites: Sim4Life 8.2.0 with a valid license. Note: GOLIAT has only been tested on Sim4Life 8.2.0; compatibility with newer versions is untested.
GOLIAT supports two installation methods. Most users should install from PyPI:
# 1. Create a virtual environment with Sim4Life Python
"C:\Program Files\Sim4Life_8.2.0.16876\Python\python.exe" -m venv venv --system-site-packages
source venv/Scripts/activate # On Windows Git Bash
# 2. Install GOLIAT
python -m pip install goliat
# 3. Navigate to your project directory and initialize
cd /path/to/your/project
goliat init
# 4. Run your first simulation
goliat study near_field_configThe --system-site-packages flag allows the venv to access Sim4Life's packages (like s4l_v1). This installs the latest released version from PyPI. For unreleased features, use editable installation.
For developers: If you need to modify code, run tests, or access repository tools, you should install in editable mode instead. See installation guide for details.
Note: The
goliat initcommand checks your setup and downloads required data files. If you skip this step,goliat studywill automatically prompt you to install when first run.
That's it! The GUI will launch, download required phantoms/antennas, and run the simulation. Results appear in results/ with JSON metrics and plots.
New to GOLIAT? Follow the Quick Start Tutorial for a step-by-step walkthrough.
# Run a 700 MHz phone-to-cheek simulation
goliat study near_field_configWhat happens:
- Loads "thelonious" (6-year-old) phantom
- Places and rotates PIFA antenna either by the face, belly or cheek
- Runs FDTD solver (5-10 min on GPU)
- Extracts head SAR, brain peak SAR (psSAR10g), power balance
- Generates heatmaps in
results/near_field/thelonious/700MHz/by_cheek/
# Plane wave exposure from 6 directions at 900 MHz
goliat study far_field_configWhat happens:
- Simulates waves from x/y/z axes (Β± directions)
- Also theta and phi polarizations (so 12 sims total)
- Calculates whole-body average SAR
- Outputs statistical summaries and boxplots
"execution_control": {
"batch_run": true
}# Submit 100+ sims to cloud in parallel
goliat study large_studyAlso want to run setup and extract phases in parallel? See the Cloud Setup Guide for deploying GPU instances. For monitoring distributed studies across multiple workers, see the monitoring dashboard documentation or the goliat-monitoring repository.
Detailed real-time progress tracking with ETA estimation, along with the verbose logging and the online monitoring website.
Simulation Setup
Automatic scene building in Sim4Life with phantom and antenna placement.
Far-field simulation with plane wave sources from multiple directions.
SAR distribution visualization in Sim4Life.
Analysis Results Gallery
GOLIAT auto-generates 16+ plot types. Click each to expand.
Cloud Monitoring Dashboard
Web dashboard for monitoring distributed studies across multiple workers.
Track individual worker status and progress.
Monitor super studies spanning multiple phantoms and frequencies.
GOLIAT follows a simple 5-stage pipeline:
graph LR
A[π Config] --> B[π¬ Setup]
B --> C[β‘ Simulate]
C --> D[π Extract]
D --> E[π Analyze]
style A fill:#4CAF50
style E fill:#4CAF50
style B fill:#2196F3
style C fill:#FF9800
style D fill:#9C27B0
- Config: Load JSON with study parameters (phantoms, frequencies, placements)
- Setup: Auto-build Sim4Life scene (load models, assign materials, set grid)
- Simulate: Run FDTD solver (local or cloud)
- Extract: Pull SAR, power balance, point sensors from results
- Analyze: Generate CSVs, plots, statistical summaries
Each stage is modular, swap in custom phantoms, antennas, or analysis strategies.
π Detailed Architecture Guide
| Resource | Description |
|---|---|
| Quick Start | Get running in 5 minutes |
| User Guide | Workflows and concepts explained |
| Tutorials | Step-by-step examples (basic β advanced) |
| Configuration | All config options with examples |
| API Reference | Class and function details |
| Troubleshooting | Common issues and solutions |
| Cloud & Monitoring | Web dashboard for distributed execution |
| AI Assistant | Natural language query interface |
| Developer Guide | Extend GOLIAT or contribute |
Contributions are welcome! We follow a standard fork-and-PR workflow:
- Fork the repo and create a feature branch
- Make changes following our code style (Ruff, type hints)
- Add tests for new features
- Submit a PR with a clear description
See CONTRIBUTING.md for detailed guidelines, code style rules, and how to run tests locally.
Quick links: Code of Conduct β’ Developer Guide
Note: GOLIAT has just come out of beta and is still in early development. You may still encounter occasional errors. Please report any issues you find.
If you use this software, please cite it as:
@software{Wydaeghe_GOLIAT,
title = {{GOLIAT: A Comprehensive Automated Near- and Far-Field SAR Assessment Toolbox using Sim4Life}},
author = {Wydaeghe, Robin},
url = {https://github.com/rwydaeghe/goliat},
license = {Apache-2.0},
version = {1.4.0}
}For other citation formats, please refer to the "Cite this repository" button on the main page of our GitHub repository.
This project is licensed under the Apache 2.0 License β see LICENSE for details.
Check out the auto-generated first draft papers (results only):
- Results PDF - Download the compiled PDF
- Results LaTeX Source - Download the LaTeX source
- Results PDF - Download the compiled PDF
- Results LaTeX Source - Download the LaTeX source
- π Full Documentation
- π Report an Issue
- π¬ Discussions
- π¦ Releases
β Star this repo if you like the GOLIAT code project!