Visita Interiora Terrae Rectificando Invenies Occultum Lapidem

Vitriol

Visit the interior of the earth; by rectification you will find the hidden stone.

A self-contained, desktop file converter for text, audio, video, image, and 3D model formats — with optional Philosopher's Stone mode that hides any lossless file inside an ordinary-looking image, audio file, video, archive, or self-extracting script.

Download for Windows View on GitHub
Five categories · 60 input formats · 50 output

What it does

Drop files into Vitriol's playlist. Pick a target format. Click convert. Everything runs locally — no telemetry, no network calls during conversions, no third-party APIs.

Text

txt · md · html · json · xml · csv · xlsx · docx · pdf · epub · rtf · pptx · odt

Images

png · jpg · webp · bmp · tiff · gif · ico · tga · ppm · dds · heic · svg

Audio

mp3 · wav · flac · ogg · opus · m4a · aac · wma · aiff · alac · au · mka

Video

mp4 · mkv · webm · avi · mov · wmv · flv · mpg · 3gp · ts · vob · ogv

3D Models

glb · gltf · obj · stl · fbx · ply · dae · 3ds

Source-available

Code-signed

AES-256 encrypted

Telemetry-free

Philosopher's Stone

The hidden stone

Drop any lossless file in. Get back an output that looks like an ordinary image, audio file, video, archive, or self-extracting script — but contains the original bytes inside, recoverable byte-exact through Vitriol. Optional AES-256 password protection per file.

Three Stone-mode PNGs of three different sources, plus the same Chopin source hidden again with the password Chopin. Same source, different password, completely different image — the encryption is baked into the carrier itself.

AES-256 password protection

Per-file optional password derived through PBKDF2-HMAC-SHA256. Without the right password, the file does not decode — and the wrong password produces silent garbage on image/audio/video/zip/3D outputs, so a probing attacker can't tell encryption was even used.

Verify Round-Trip

Optional safety toggle. When on, every Stone conversion is immediately reversed in a temp folder, and the output only commits if the reverse produces bytes matching the original. Catches end-to-end integrity issues before they reach disk.

Layering for depth

Save a file as .png. Drop the result back in and save it as .wav. Then the .wav as .mkv. Each layer can carry its own password — recovering the original means unwrapping every layer in reverse order with the right password at each step.

Round-trip examples

Sample outputs

Three source files and the Stone-mode .png, .wav, and .mkv outputs Vitriol produces from them. Drop any of these back into Vitriol to recover the original source byte-for-byte. Self-extracting .py and .exe outputs work differently — see the next section.

Inline players are 30-second previews of the Stone-mode .wav output — generated music that's actually carrying the source file's bytes inside it. The Chopin row has no preview because audio-to-audio is a same-category conversion (no Stone hiding when both sides are already audio).

Sample Music Zip

A zip archive of audio files — auto-engages Stone mode.

Stone .wav output (preview)

The Raven by Edgar Allan Poe

A PDF of the poem — converted into image, audio, and video.

Stone .wav output (preview)

Chopin — Nocturne Op. 9, No. 2

An m4a recording — Stone outputs include both no-password and password-protected image variants of the cross-category conversions. Password: Chopin

Run them, don't reload them

Self-extracting scripts

Stone-mode .py and .exe outputs are different from the image / audio / video outputs above — they contain everything needed to reconstruct the source without Vitriol installed. Run the script, it rebuilds the original file next to itself.

Self-extracting .py

A standalone Python script. Anyone with Python installed can run it; no Vitriol needed. Cross-platform (Windows / macOS / Linux), small file size, easy to inspect — open it in any text editor to see the embedded payload as base64.

Run it:

python the_file.py

If password-protected, you'll be prompted on stdin. Five wrong attempts and the script self-deletes.

Self-extracting .exe

A native Windows executable. Recipients don't need Python or Vitriol — just Windows. Double-click to run; the embedded payload extracts to the same folder as the executable.

Run it:

double-click on Windows
or:  the_file.exe

Same password rules as .py. Windows may show a SmartScreen warning for unsigned executables — that's expected.

You can also drop a .py or .exe Stone output back into Vitriol if you have it installed — both paths recover the same original bytes — but the whole point of these formats is that you don't have to. They're for sharing with people who won't be installing Vitriol.

Try the example scripts

Sample Music Zip → .py

Run with Python; rebuilds Sample Music Zip.zip in the same folder.

The Raven → .py

Run with Python; rebuilds The Raven By Edgar Allan Poe.pdf in the same folder.

Chopin (password-protected) → .py & .exe

Both rebuild Chopin - Nocturne Op. 9.m4a. You'll be prompted for a password — use Chopin. The .exe runs without Python; the .py needs it.

Free · Windows 10 / 11 · 64-bit

Download Vitriol

Both editions are digitally signed via Azure Trusted Signing. Right-click the downloaded file → Properties → Digital Signatures to verify the certificate.

Recommended

Installer

VitriolSetup-1.1.0.exe · ~120 MB · signed

Standard Windows install. Puts Vitriol under Program Files, registers a Start Menu entry, and gives you a normal Add/Remove Programs entry. One-click in-app updates from this point forward.

  • Standard install path
  • Start Menu + optional Desktop shortcut
  • Auto-update with one click
  • Uninstall via Settings → Apps
Download installer
Portable

Portable zip

Vitriol-1.1.0-portable.zip · ~120 MB · signed inner exe

Extract anywhere — Desktop, USB stick, a tools folder. No installer, no admin rights. Inner Vitriol.exe carries the same signature as the installed edition.

  • Run from any folder
  • No admin rights required
  • Update notifications + browser link
  • Delete the folder to remove
Download portable zip

Both downloads include FFmpeg, Assimp, DejaVu Sans, Cinzel, and an embedded Python runtime. No system Python install required. Nothing is downloaded at runtime except the optional once-per-day update check.

For developers

Build from source

Source-available under the Elastic License v2. Clone, run, audit. Vitriol's Stone mode uses standard cryptography (AES-256-CTR + PBKDF2-HMAC-SHA256) — you don't have to take our word for it.

git clone https://github.com/kl3mta3/Vitriol.git
cd Vitriol
python launcher.py

First launch installs four pip packages and downloads FFmpeg + Assimp + bundled fonts to local folders. Subsequent launches are instant.