Skip to content
CAI
Software that uses CAICheck a score

mxgmn/MarkovJunior

41.5

Weak · 5 August 2026

3.8k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

MarkovJunior is a probabilistic programming language designed for procedural content generation, utilizing pattern matching and constraint propagation to create diverse outputs like mazes and simulations. The system supports grid-based transformations through convolution and cellular automata nodes, allowing users to define complex simulation rules. It also provides a flexible resource framework for visual themes and tilesets, enabling varied map generation styles. The platform is built on .NET 10 and leverages image processing libraries for rendering and resource management.

Features

Add convolution and cellular automata simulation nodes

Introduces new simulation primitives: a convolution node that applies configurable kernels (e.g., Von Neumann, Moore) to grid states, and a ConvChain node that performs probabilistic cellular automata updates on a substrate. These nodes enable users to define and run grid-based transformation rules and pattern-matching simulations directly within the interpreter.

source · high confidence

Added new tileset and color palette resources

The application now supports a wider variety of visual themes and map generation styles. A new color palette (palette.xml) defines the color scheme for the game's UI and map elements. Additionally, several new tileset definitions have been added to support different procedural generation styles: Dungeon, Escher, EscherSurface, Knots2D, Knots3D, MarchingHills, OrientedEscher, OrientedStairs, Partition, PartitionedEdges, Paths, and Surface. These resources allow the game to render different types of terrain and structures based on the selected map generation algorithm.

resources · high confidence

Initial release of MarkovJunior: a probabilistic programming language for procedural generation

The repository introduces MarkovJunior, a probabilistic programming language based on pattern matching and constraint propagation. Users can define programs as ordered lists of rewrite rules to generate diverse content such as mazes, dungeons, and simulations. The release includes a comprehensive README explaining the syntax and concepts, a syntax guide, a models.xml index of available examples, and a .gitignore file for the project.

(repo-wide) · high confidence

Dependencies

Migrate to .NET 10 and adopt SixLabors.ImageSharp

The project file has been updated to target .NET 10.0 and includes a dependency on SixLabors.ImageSharp version 3.1.12. Additionally, model and resource files are configured to be copied to the output directory.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 42 → 42 (-0.2)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.08.19) — scores are not directly comparable.

Lenses

  • Code Health 69 → 67 (-1.7)
  • Architecture 100 → 100 (+0.0)
  • Maturity 57 → 57 (+0.0)
  • Readiness 10 → 10 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (12)

  • Duplicated block (10 lines × 2) (source/AllNode.cs)
  • Duplicated block (5 lines × 2) (source/GUI.cs)
  • Duplicated block (5 lines × 2) (source/GUI.cs)
  • Duplicated block (6 lines × 2) (source/Convolution.cs)
  • Duplicated block (6 lines × 2) (source/TileModel.cs)
  • Duplicated block (6 lines × 3) (source/TileModel.cs)
  • Duplicated block (6 lines × 8) (source/SymmetryHelper.cs)
  • Duplicated block (7 lines × 2) (source/OverlapModel.cs)
  • Duplicated block (7 lines × 2) (source/RuleNode.cs)
  • Duplicated block (8 lines × 3) (source/TileModel.cs)
  • Duplicated block (9 lines × 2) (source/Convolution.cs)
  • Duplicated block (9 lines × 2) (source/RuleNode.cs)

New (11)

  • Duplicated block (10 lines × 2) (source/AllNode.cs)
  • Duplicated block (5 lines × 2) (source/GUI.cs)
  • Duplicated block (6 lines × 2) (source/Convolution.cs)
  • Duplicated block (6 lines × 2) (source/TileModel.cs)
  • Duplicated block (6 lines × 3) (source/TileModel.cs)
  • Duplicated block (6 lines × 8) (source/SymmetryHelper.cs)
  • Duplicated block (7 lines × 2) (source/OverlapModel.cs)
  • Duplicated block (7 lines × 2) (source/RuleNode.cs)
  • Duplicated block (8 lines × 2) (source/RuleNode.cs)
  • Duplicated block (8 lines × 3) (source/TileModel.cs)
  • Duplicated block (9 lines × 2) (source/Convolution.cs)

Architecture

  • Unchanged — 1 containers · 0 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

mxgmn/MarkovJunior was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 42aaf24bcf54ae164fba49c0a59348297904a676 — the exact code this score is about.
  • Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.