Example projects
These public repositories are ready for Discovery with Artemis Desktop. Each has tests that pin its behaviour and a benchmark that writes metrics for Artemis to read.
Set any of them up as in Quick start in the app, or give the details to your agent as in Quick start with a coding agent. You can import a repository directly, fork it first if you want to open a Pull Request with the result, or upload it as a .zip file.
| Project | Language | What Discovery optimises | Metrics |
|---|---|---|---|
| quickstart | Python | Five small functions, each with a deliberate performance mistake | total_ms and time per function in milliseconds, lower is better |
| MatrixBenchmark | C++ | Matrix multiplication | Time per method in milliseconds, lower is better |
Artemis also records runtime, CPU and memory whenever the benchmark commands run. See Metrics.
quickstart
Repository: artemisTurintech/quickstart
The project used in the quick starts, built to show Discovery finding improvements quickly, even with a local model. slow.py has five short functions, each with a deliberate performance mistake, such as naive recursion in fib or nested loops in find_duplicates. test_slow.py checks every function against a reference implementation, and benchmark.py times each function and writes the results to artemis_results.json. It needs nothing beyond Python.
Runner needs: Python 3.
| Phase | Command |
|---|---|
| Setup | python -m py_compile slow.py |
| Setup | python test_slow.py |
| Benchmark | python benchmark.py |
- Objective: Reduce
total_mswithout changing the results of any function. All tests must keep passing. - Target files:
slow.py
MatrixBenchmark
Repository: artemisTurintech/MatrixBenchmark
A small C++17 project that multiplies two 1024×1024 matrices with four methods: naive, transposed, tiled and parallel. Each method is a different starting point for cache, vectorisation and threading optimisations, and a test checks that every method still produces the right result. The benchmark writes the time of each method to artemis_results.json, for example naive_ms and tiled_ms. The repository's COMMANDS.md explains each command.
Runner needs: CMake 3.25 or newer, Ninja and a C++17 g++.
| Phase | Command |
|---|---|
| Setup | cmake --workflow --preset default --fresh |
| Setup | ctest --test-dir build --output-on-failure |
| Benchmark | cmake -E chdir . build/benchmark |
The commands work unchanged in cmd, PowerShell and Git Bash, so they run on a Windows Runner.
- Objective: Reduce
naive_msandtranspose_mswithout changing the results of the multiplication. All tests must keep passing. - Target files:
src/matrix.cpp,include/matrix.h
Use your own project
To prepare your own repository, you need commands that build it, test it and run a measurable benchmark. See Runner and Scripts, or Make a repository ready to have your coding agent prepare a benchmark for you.