A Python-first research repo for experimenting with possible solutions to the unsolved K4 section of Jim Sanborn's Kryptos sculpture.
Live dashboard: https://claudlos.github.io/Kryptos/
The repository now exposes its research state through structured CLI results and a static dashboard backed by generated JSON instead of hand-maintained copy.
kryptos_toolkit.py: primary CLI for running the Python strategies and exporting structured JSON.k4_analyzer.py: clue-position and Vigenere-shift analysis for the known anchors.generate_k4_dictionary.py: builds the dictionary used by the CPU and GPU fractionation runs.gpu_opencl_suite.py: OpenCL Bifid sweep with explicit pass accounting and finite defaults.kryptos_deluxe_suite.mojo: Mojo-based mutated sweep prototype.linux_native_suite.mojo: benchmark scaffold, not a full K4 decryptor.docs/: static dashboard site powered bydocs/data/dashboard.json.tests/:unittestcoverage for core invariants and CLI behavior.
Base install:
pip install -e .GPU-enabled install:
pip install -e .[gpu]Legacy dependency path:
- Install the package plus GPU extras:
pip install -r requirements.txt
- Generate the dictionary file if you need to rebuild it:
python generate_k4_dictionary.py
List strategies:
python kryptos_toolkit.py --list-strategiesInstalled console script:
kryptos-toolkit --list-strategiesRun one strategy and emit JSON:
python kryptos_toolkit.py --strategy 1 --jsonRun the full Python suite, save a run artifact, and refresh the dashboard data:
python kryptos_toolkit.py --strategy all \
--output runs/latest_run.json \
--dashboard-output docs/data/dashboard.jsonGenerate clue analysis data:
python k4_analyzer.py --jsonInstalled console script:
kryptos-analyze --jsonRun the GPU sweep for one pass:
python gpu_opencl_suite.py --passes 1Run the GPU sweep continuously until interrupted:
python gpu_opencl_suite.py --continuousInstalled console script:
kryptos-gpu --profile smoke --jsonUse the unified benchmark entry point to plan or run comparable benchmark profiles:
Plan a GPU smoke benchmark:
python -m kryptos.benchmark_cli --runner gpu-opencl --profile smoke --plan-only --jsonPlan a Mojo deluxe smoke benchmark:
python -m kryptos.benchmark_cli --runner mojo-deluxe --profile smoke --plan-only --jsonIf the console scripts are installed:
kryptos-benchmark --runner gpu-opencl --profile smoke --plan-onlyAvailable runners:
gpu-openclmojo-deluxemojo-scaffold
Available profiles per runner:
smokedefaultdeep
Generated benchmark plan artifacts in this repo:
runs/gpu_benchmark_plan.jsonruns/mojo_deluxe_benchmark_plan.jsonruns/mojo_scaffold_benchmark_plan.json
Generate the Colab notebook/config artifacts and a local snapshot zip for upload to Colab:
python -m kryptos.colab --include-drive-mount --jsonInstalled console script:
kryptos-colab --include-drive-mount --jsonDefault outputs:
notebooks/kryptos_colab_ai_workbench.ipynbruns/colab_workbench_config.jsonruns/colab_repo_snapshot_posix.zip(local-only upload artifact; keep it out of public commits)
The generated notebook is designed around Google's google.colab.ai workflow and adds Kryptos-specific cells to:
- clone and install this repo in Colab
- upload and unpack the generated local snapshot zip when the local working tree is ahead of GitHub or you are testing unpushed changes
- probe OpenCL availability before running the GPU benchmark
- run a smoke pass and a heavier benchmark pass
- fall back to the
cpu-strategyrunner if OpenCL is unavailable - summarize retained candidates with
google.colab.ai
python -m unittest discover -s tests -v- The Python toolkit returns structured results for each strategy, including attempts, elapsed time, previews, and clue hits.
- The dashboard in
docs/reads its data fromdocs/data/dashboard.json, which can be regenerated directly fromkryptos_toolkit.py. - The historical speed figures in the site are repository benchmark notes, not guarantees for every machine.
linux_native_suite.mojois intentionally labeled as a benchmark scaffold so the docs do not overstate what it does.pyproject.tomldefines installable console scripts for the toolkit, analyzer, dictionary generator, GPU runner, and benchmark orchestrator.