Three ways to run ObieApp without relying on the hosted website โ
choose the one that fits your needs.
Run the full ObieWebApp UI (Explore, Acquire, Convolve) from a local
server. The first load needs internet to cache PyScript +
Pyodide (~50 MB) โ after that the browser serves everything from its own
cache and no internet is needed.
This is the simplest option. Chrome's cache is persistent across restarts;
it only disappears if you manually clear browser data.
1
Get the code
One-time
Clone the repository (or download the ZIP โ see the Desktop section for details):
ObieApp needs a server that sets the right security headers for
SharedArrayBuffer (required by PyScript). A ready-made
server script is included:
cd ObieApp/Web
python3 serve.py
cd ObieApp\Web
python serve.py
cd ObieApp/Web
python3 serve.py
You'll see: โ http://localhost:8000
To use a different port: python3 serve.py 9000
3
Load the page in Chrome (internet required once)
One-time per machine
Open Chrome or Edge and go to:
http://localhost:8000
The first time you open any tool, Chrome downloads PyScript and Pyodide
(~50 MB) and caches them. This is a one-time step per machine.
Why Chrome or Edge? Safari and Firefox don't support the
File System Access API needed for the Data Folder feature.
4
Go offline
After first load
Disconnect, run serve.py, open localhost:8000 โ
everything works from Chrome's cache. The cache survives browser restarts.
If you clear browser data or switch Chrome profiles, one more online load is
needed to repopulate the cache.
โ Full web UI, fully local
All tools, Data Folder integration, templates, and exports work exactly
the same as the hosted site. Your data never leaves your machine.
To update: git pull inside ObieApp/, then restart serve.py.
Download every dependency โ PyScript, Pyodide, numpy, scipy, Plotly โ into
the repo folder once while you have internet. After that, serve.py works
with no internet at all, even on machines that have never been online.
Use this if you can't rely on Chrome's cache staying intact, or if you need to copy
ObieApp to an air-gapped machine.
1
Get the code and install Python
One-time
Same as the other approaches โ clone the repo and make sure Python 3 is installed:
It also patches all index.html and pyscript.toml files
to use vendor/ paths instead of CDN URLs, and replaces the GitHub
raw-file URLs with local repo paths.
3
Start the server โ no internet needed from here
Every session
cd ObieApp/Web
python3 serve.py
cd ObieApp\Web
python serve.py
cd ObieApp/Web
python3 serve.py
Open Chrome or Edge at http://localhost:8000.
All assets are served locally โ network cable can be unplugged.
4
Transferring to an air-gapped machine
Optional
After step 2, copy the entire ObieApp/ folder to the
target machine โ USB drive, network share, or any other method.
The vendor/ folder and patched files travel with it.
On the target machine, install Python 3 (only Python itself needs to come
from outside โ no pip packages required), then run serve.py as above.
Chrome or Edge must be installed on the target machine. They don't need
internet access once launched โ only the URL bar needs to point to
localhost:8000.
5
Going back to CDN mode
Optional
If you want to revert all patches (e.g. to get automatic updates from CDN again):
python3 download-offline.py --revert
python download-offline.py --revert
python3 download-offline.py --revert
This restores all HTML and TOML files to their original CDN URLs
using the saved vendor/offline-manifest.json.
The vendor/ folder itself is left in place โ delete it
manually if you want to reclaim the disk space.
โ Completely self-contained
After running the download script once, the repo folder contains everything
needed to run ObieWebApp. No internet, no browser cache, no external
dependencies beyond Python 3 and Chrome/Edge.
To update to a new ObieApp version: git pull, re-run
download-offline.py (it skips files it already has).
Run Explore.py (FRF viewer) and Aquire.py
(impact-hammer acquisition) as native desktop applications โ no browser,
no server, no internet connection required after the initial install.
1
Install Python 3.10 or newer
One-time
The easiest way on macOS is Homebrew. If you don't have it:
cd ObieApp/Python
pip3 install numpy scipy matplotlib pyaudio
PyAudio on macOS: If it fails, first run
brew install portaudio, then retry.
cd ObieApp\Python
pip install numpy scipy matplotlib pyaudio
PyAudio on Windows: If it fails, try
pip install pipwin && pipwin install pyaudio.
cd ObieApp/Python
pip3 install numpy scipy matplotlib pyaudio
PyAudio on Linux: If it fails, first run
sudo apt install portaudio19-dev python3-pyaudio, then retry.
All other modules (fileio, audioio, plotio, processing) are part of the
repo โ no extra installs needed.
4
Create a Data Folder and config file
One-time per setup
Both tools read a config.json from your Data Folder. The easiest way
to create it is to use the web app to set up a Data Folder once โ it creates
ObieAppSettings/ with the right defaults โ then copy that folder to
your local machine.