From 18899dc1637f874078f3852331579def7cb18cfe Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 8 May 2025 11:12:33 +0300 Subject: [PATCH] docs: add readme --- README.md | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/README.md b/README.md index e69de29..66ccedd 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,87 @@ +# Grover’s Search Visualizer + +A tiny Python package that steps through Grover’s Search algorithm and shows you, after each iteration: + +- A bar‐chart of amplitudes (or probabilities) +- A sine‐curve of success‐probability vs. iteration +- A geometric "rotation" on the unit circle + +Choose between a Matplotlib-based CLI or an optional DearPyGui GUI (WIP). + +--- + +![Demo of Grover’s Visualizer](media/demo.gif) + +--- + +## Installation + +### Via [pipx](https://pipx.pypa.io/stable/installation/) + +Basic (CLI only): + +```bash +pipx install grovers-visualizer +grovers-visualizer 1111 +``` + +With the optional DearPyGui UI (WIP): + +```bash +pipx "grovers-visualizer[ui]" +grovers-visualizer --ui +``` + +### Via [uvx](https://docs.astral.sh/uv/guides/tools/) + +Basic (CLI only): + +```bash +uvx grovers-visualizer 1111 +``` + +With the optional UI extra: + +```bash +uvx "grovers-visualizer[ui]" --ui +``` + +--- + +## Usage + +### CLI Mode + +Flags: + +• `-t, --target` + Target bit‐string (e.g. `010`). Length determines number of qubits. +• `-s, --speed` + Delay between iterations (seconds). Default `0.5`. +• `-i, --iterations` + Max iterations; `0` means use the optimal $\lfloor\frac\pi4\sqrt{2^n}\rfloor$. +• `--ui` + Launch the optional DearPyGui GUI (requires the `[ui]` extra) (WIP). + +### GUI Mode (WIP) + +If you installed with `"[ui]"`, launch the DearPyGui window: + +``` +grovers-visualizer --ui +``` + +In the UI you can: + +- Set number of qubits +- Enter the target bit‐string +- Choose max iterations or leave at 0 for optimal +- Control the animation speed + +Hit **Start** to watch the bar chart, sine plot, and rotation‐circle update in real time. + +--- + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.