Sample
Dorn/python/76
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 8.1Δ 26.2 |
| Scalabrino | 0.507 | 0–1; higher is more readable | 43.0Δ 8.8 |
| Dorn | 0.508 | 0–1; higher is more readable | 43.5Δ 9.2 |
| Mi | 0.307 | 0–1; higher is more readable | 29.5Δ 4.7 |
| LLOC | 38 | Logical lines; fewer is more readable | 2.9Δ 31.3 |
| DeepSeek V4 Pro | 7.33 | 0–20; mean of three runs | 24.8Δ 9.5 |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs | 30.6Δ 3.6 |
| BTTF | 0.405 | 0–1; higher is more readable | 24.8Δ 9.5 |
| Human | 3.07 | 1–5; original rating | 34.3 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 2571.689 | −84.866 |
| Source linesThe number of non-empty source lines. | 49 | +19.6 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 3.923 | −5.884 |
Intercept 8.87 + feature contributions = -62.28 (log-odds).
Score = sigmoid(-62.28) = 0.
| Score | 0.507 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 44 | +0.785 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 50 | −0.734 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 45 | −0.612 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 83 | +0.535 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.142 | −0.435 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 48.714 | +0.271 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 82.98 | +0.151 |
Intercept 0.07 + feature contributions = 0.03 (log-odds).
Score = sigmoid(0.03) = 0.508.
| Score | 0.307 |
|---|
| Score | 38 |
|---|
Run 1
The code has some readable elements, such as short helper functions and relatively flat structure, but it suffers from several issues. The functions rely on external global data (`pathdefs`) and use magic indices (`defs[1]`, `defs[3][i]`) which obscure intent. Variable names are terse (`p`, `a`, `cx`) and loops mutate list items in place without clear explanation. `rotatePath` contains deeper nesting and mathematical operations that reduce readability. There is also an abrupt start with an orphaned `retval.append` line suggesting missing context. Overall, the logic is not tangled, but clarity suffers due to poor naming, cryptic indexing, and lack of comments explaining the coordinate/command transformations.
Run 2
The code is difficult to read due to poor structure and unclear intent. The first function begins mid-logic, suggesting missing context. Functions depend on an undefined global `pathdefs` and mutate input lists, which obscures purpose and side effects. `formatPath` is a dense one-liner, reducing clarity. The path transformation functions contain repetitive loops with cryptic parameter codes ('x', 'y', 'r', 's', 'a') explained only by inconsistent comments. `rotatePath` nests a calculation inside a condition and relies on implicit pairing of x/y parameters, which is fragile and unclear. Variable names like `p`, `a`, `defs` are too terse. Action granularity is poor—several operations occur per line. While indentation is consistent, the overall reading flow is disorganized and hard to follow.
Run 3
The code is difficult to read due to missing context, unclear variable names, and tight coupling to undefined external data structures. Functions like translatePath and scalePath rely on 'pathdefs' and cryptic parameter codes ('x', 'y', 'r', 's', 'a') without explanation. Action granularity is reasonable, with mostly one operation per line, but nesting depth (multiple loops and conditionals) hurts readability. The truncated first function lacks indentation and context. Commented sections offer minimal guidance. Reading flow is disorganized, especially in rotatePath where parameter indexing and math operations are densely packed. Overall, the code lacks clarity of intent and structure, though it is not entirely unreadable.
Run 1
Code Structure: Separate functions logically organize formatting, translation, scaling, and rotation, but the opening fragment lacks context and pathdefs is an unexplained dependency. Nesting: Translation is manageable, while scaling and rotation reach deeper nesting through loops and conditional branches. Clarity of intent: Function names communicate purpose, and some comments explain parameter types; however, terse names and numeric indexing such as defs[3][i] obscure the data model. In-place mutation and inconsistent return behavior are not documented. Code length: Generally concise, though repeated traversal logic adds duplication and formatPath packs substantial work into one expression. Action granularity: Most statements perform one action per line, making transformations easy to follow. Reading flow: Functions proceed naturally, but inconsistent spacing, missing context, and implicit assumptions about adjacent coordinate parameters interrupt comprehension.
Run 2
Code Structure: Separate functions organize formatting, translation, scaling, and rotation logically, but the opening fragment lacks context and pathdefs is an unexplained dependency. Nesting: Translation is manageable, while scaling and rotation reach several nested levels. Clarity of intent: Function names clearly express purpose, and comments explain special parameters; terse names and positional accesses such as defs[3][i] obscure details. Code length: Generally concise, though repeated traversal logic adds duplication and the formatting comprehension is dense. Action granularity: Most lines perform one action, making updates easy to follow. Reading flow: Functions follow a consistent pattern, but inconsistent spacing, metadata indexing, and rotation's nested calculations interrupt readability. In-place mutation and inconsistent return behavior are not documented.
Run 3
Code Structure: Separate functions logically organize formatting, translation, scaling, and rotation, but the opening fragment is incomplete and pathdefs is unexplained. Nesting: Translation is moderately nested; scaling and rotation reach deeper levels through loops and conditionals. Clarity of intent: Function names clearly identify operations, and comments explain some parameter types, but short names and numeric indices into defs obscure the underlying representation. Code length: Generally concise, although repeated traversal logic and the dense formatting comprehension reduce readability. Action granularity: Most lines perform a single action; formatPath compresses several operations into one expression. Reading flow: Functions follow a consistent traversal pattern, making transformations easy to compare, but inconsistent spacing, implicit in-place mutation, and inconsistent return behavior interrupt comprehension.