Skip to main content

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.

ProjectLanguageWhat Discovery optimisesMetrics
quickstartPythonFive small functions, each with a deliberate performance mistaketotal_ms and time per function in milliseconds, lower is better
MatrixBenchmarkC++Matrix multiplicationTime 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.

PhaseCommand
Setuppython -m py_compile slow.py
Setuppython test_slow.py
Benchmarkpython benchmark.py
  • Objective: Reduce total_ms without 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++.

PhaseCommand
Setupcmake --workflow --preset default --fresh
Setupctest --test-dir build --output-on-failure
Benchmarkcmake -E chdir . build/benchmark

The commands work unchanged in cmd, PowerShell and Git Bash, so they run on a Windows Runner.

  • Objective: Reduce naive_ms and transpose_ms without 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.