Makepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl
This report presents the forensic synthetic code analysis of makepad/makepad, a Rust project with 6,490 GitHub stars. SynthScan v2.0 examined 1,672,696 lines of code across 3655 source files, recording 4675 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 2.7 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4675 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 201 | #opt-level = 3 | COMMENT |
| LOW | Cargo.toml | 221 | #opt-level = 3 | COMMENT |
| LOW | download_tts.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | studio/desktop/src/desktop_terminal_view.rs | 141 | #[redraw] | COMMENT |
| LOW | studio/desktop/src/desktop_run_view.rs | 161 | #[derive(Script, Widget)] | COMMENT |
| LOW | studio/desktop/src/desktop_run_view.rs | 181 | #[redraw] | COMMENT |
| LOW | tools/cargo_publish.sh | 1 | DRYRUN=${1:---dry-run} | COMMENT |
| LOW | tools/cargo_publish.sh | 21 | #cargo publish $DRYRUN --allow-dirty -p makepad-derive-live | COMMENT |
| LOW | tools/cargo_publish.sh | 41 | COMMENT | |
| LOW | tools/cargo_publish.sh | 61 | #cargo publish $DRYRUN --allow-dirty -p makepad-rustybuzz | COMMENT |
| LOW | tools/cargo_publish.sh | 81 | #cargo publish $DRYRUN --allow-dirty -p makepad-fonts-chinese-regular | COMMENT |
| LOW | tools/cargo_publish.sh | 101 | #echo "---- PUBLISHING makepad-audio-graph----" | COMMENT |
| LOW | tools/cargo_publish.sh | 121 | #echo "---- PUBLISHING makepad-file-protocol----" | COMMENT |
| LOW | tools/open_harmony/deveco/entry/obfuscation-rules.txt | 1 | # Define project specific obfuscation rules here. | COMMENT |
| LOW | tools/cargo_makepad/src/utils.rs | 281 | COMMENT | |
| LOW | tools/cargo_makepad/src/android/compile.rs | 801 | /// Android package id (`com.foo.bar`). Becomes both the manifest `package=` | COMMENT |
| LOW | tools/cargo_makepad/src/android/compile.rs | 1881 | (build_paths.dst_apk.to_str().unwrap()), | COMMENT |
| LOW | …/android/java/dev/makepad/android/MakepadActivity.java | 181 | COMMENT | |
| LOW | …/android/java/dev/makepad/android/MakepadActivity.java | 241 | this.right = right; | COMMENT |
| LOW | …/android/java/dev/makepad/android/MakepadActivity.java | 2021 | public void showKeyboard(final boolean show) { | COMMENT |
| LOW | platform/studio/src/cursor.rs | 1 | use makepad_micro_serde::*; | COMMENT |
| LOW | platform/studio/src/cursor.rs | 21 | // | | COMMENT |
| LOW | platform/studio/src/cursor.rs | 41 | Arrow, | COMMENT |
| LOW | platform/studio/src/cursor.rs | 61 | // |******| | COMMENT |
| LOW | platform/studio/src/cursor.rs | 81 | // * * * * | COMMENT |
| LOW | platform/studio/src/cursor.rs | 101 | // * * | COMMENT |
| LOW | platform/studio/src/cursor.rs | 121 | // | | | COMMENT |
| LOW | platform/studio/src/cursor.rs | 141 | // * * | COMMENT |
| LOW | platform/studio/src/cursor.rs | 161 | COMMENT | |
| LOW | platform/studio/src/cursor.rs | 221 | // ^ | COMMENT |
| LOW | platform/studio/src/mouse.rs | 41 | /// to be pressed simultaneously during a given input event. | COMMENT |
| LOW | platform/studio/src/mouse.rs | 101 | /// Returns true if the back mouse button is pressed. | COMMENT |
| LOW | platform/studio/src/mouse.rs | 121 | /// Returns a `MouseButton` bit mask based on the raw button value: `1 << raw`. | COMMENT |
| LOW | platform/script/derive/src/derive_scriptable.rs | 181 | COMMENT | |
| LOW | platform/script/src/opcodes.rs | 1 | //! Opcode execution for the script virtual machine | COMMENT |
| LOW | platform/script/src/heap.rs | 61 | impl ScriptHeap { | COMMENT |
| LOW | platform/script/src/gen_index.rs | 1 | /// Generational index system for detecting use-after-free bugs. | COMMENT |
| LOW | platform/script/src/apply.rs | 121 | } | COMMENT |
| LOW | platform/script/src/apply.rs | 181 | /// LiveEdit hot-reload (`Apply::Reload`) or a `request_script_reapply`-driven | COMMENT |
| LOW | platform/src/media_plugin.rs | 81 | /// Updated buffered time ranges (seconds). | COMMENT |
| LOW | platform/src/permission.rs | 1 | #[derive(Debug, Clone, Copy, PartialEq)] | COMMENT |
| LOW | platform/src/permission.rs | 21 | /// Required on: Android Quest for scene data, environment depth, and passthrough occlusion. | COMMENT |
| LOW | platform/src/permission.rs | 41 | /// - User denied the permission once but didn't trigger the "implicit don't ask again" | COMMENT |
| LOW | platform/src/window.rs | 381 | pub position: Option<Vec2d>, | COMMENT |
| LOW | platform/src/gl_render_bridge.rs | 21 | use crate::os::linux::gl_sys; | COMMENT |
| LOW | platform/src/id_pool.rs | 101 | /// Allocates an item in the pool, potentially reusing an existing slot. | COMMENT |
| LOW | platform/src/perf_monitor.rs | 1 | //! Main-thread frame monitor feeding the PerfGraph widget (widgets crate). | COMMENT |
| LOW | platform/src/live_reload.rs | 81 | self.pending_files | COMMENT |
| LOW | platform/src/ui_runner.rs | 1 | use crate::*; | COMMENT |
| LOW | platform/src/cx.rs | 141 | /// When true, the next event-loop iteration will fire `Event::LiveEdit`, | COMMENT |
| LOW | platform/src/cx.rs | 321 | OsType::OpenHarmony(params) => Some(params.cache_dir.clone()), | COMMENT |
| LOW | platform/src/cursor.rs | 1 | use crate::{ | COMMENT |
| LOW | platform/src/cursor.rs | 21 | #[pick] | COMMENT |
| LOW | platform/src/cursor.rs | 41 | // * * | COMMENT |
| LOW | platform/src/cursor.rs | 61 | COMMENT | |
| LOW | platform/src/cursor.rs | 81 | // | \ | | COMMENT |
| LOW | platform/src/cursor.rs | 101 | Grabbing, | COMMENT |
| LOW | platform/src/cursor.rs | 121 | ContextMenu, | COMMENT |
| LOW | platform/src/cursor.rs | 141 | // * * | / | | COMMENT |
| LOW | platform/src/cursor.rs | 161 | NoDrop, | COMMENT |
| 4358 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | platform/script/std/src/task.rs | 63 | std.data.tasks.hooks.on_thread_completed.push(hook); | CODE |
| CRITICAL | platform/script/std/src/task.rs | 76 | std.data.tasks.hooks.pump.push(hook); | CODE |
| CRITICAL | platform/script/std/src/task.rs | 92 | let hooks = std.data.tasks.hooks.on_thread_completed.clone(); | CODE |
| CRITICAL | platform/script/std/src/task.rs | 101 | let hooks = std.data.tasks.hooks.pump.clone(); | CODE |
| CRITICAL | platform/script/src/shader_vars.rs | 500 | if let Some(pod_ty) = vm.bx.code.builtins.pod.value_to_exact_type(value) { | CODE |
| CRITICAL | platform/script/src/shader.rs | 761 | if let Some(pod_ty) = vm.bx.code.builtins.pod.value_to_exact_type(value) { | CODE |
| CRITICAL | platform/script/src/shader_output.rs | 416 | if let Some(pod_ty) = vm.bx.code.builtins.pod.value_to_exact_type(value) { | CODE |
| CRITICAL | platform/script/src/opcodes_control.rs | 198 | .new_with_proto(self.bx.code.builtins.range.into()); | CODE |
| CRITICAL | platform/script/src/opcodes_loops.rs | 106 | .has_proto(obj, self.bx.code.builtins.range.into()); | CODE |
| CRITICAL | platform/script/src/opcodes_loops.rs | 203 | .has_proto(obj, self.bx.code.builtins.range.into()) | CODE |
| CRITICAL | xr/src/bin/manual_align.rs | 976 | .and_then(|loaded| loaded.pair.local_descriptor.descriptor.height_map.clone()); | CODE |
| CRITICAL | old/studio/src/app.rs | 216 | for build in self.data.build_manager.active.builds.values() { | CODE |
| CRITICAL⚡ | libs/box3d/src/recording.rs | 1420 | hash = (hash ^ sim.transform.q.v.x.to_bits() as u64).wrapping_mul(prime); | CODE |
| CRITICAL⚡ | libs/box3d/src/recording.rs | 1421 | hash = (hash ^ sim.transform.q.v.y.to_bits() as u64).wrapping_mul(prime); | CODE |
| CRITICAL⚡ | libs/box3d/src/recording.rs | 1422 | hash = (hash ^ sim.transform.q.v.z.to_bits() as u64).wrapping_mul(prime); | CODE |
| CRITICAL | …dows/windows-rs/src/extensions/Win32/System/Variant.rs | 109 | if from.Anonymous.Anonymous.vt == VT_UNKNOWN && !from.Anonymous.Anonymous.Anonymous.punkVal.is_none() { | CODE |
| CRITICAL | …dows/windows-rs/src/extensions/Win32/System/Variant.rs | 270 | if from.Anonymous.Anonymous.vt == VT_DISPATCH && !from.Anonymous.Anonymous.Anonymous.pdispVal.is_none() { | CODE |
| CRITICAL | …ws-rs/src/extensions/Win32/System/StructuredStorage.rs | 97 | if from.Anonymous.Anonymous.vt == VT_UNKNOWN && !from.Anonymous.Anonymous.Anonymous.punkVal.is_none() { | CODE |
| CRITICAL | …ws-rs/src/extensions/Win32/System/StructuredStorage.rs | 258 | if from.Anonymous.Anonymous.vt == VT_DISPATCH && !from.Anonymous.Anonymous.Anonymous.pdispVal.is_none() { | CODE |
| CRITICAL | libs/mlx/src/core/model.rs | 875 | self.snapshot.config.quantization.mode.as_str() | CODE |
| CRITICAL | libs/mlx/src/multimodal/vision.rs | 454 | let root = self.weights.snapshot.paths.root_dir.to_string_lossy(); | CODE |
| CRITICAL | libs/mlx/src/multimodal/vision.rs | 505 | let root = self.weights.snapshot.paths.root_dir.to_string_lossy(); | CODE |
| CRITICAL | examples/gamemaker/src/game_view.rs | 2343 | let slice = self.draw_alpha.cube.cube.draw_vars.as_slice(); | CODE |
| CRITICAL | examples/gamemaker/src/game_view.rs | 2538 | && self.draw_alpha.cube.cube.draw_vars.can_instance(); | CODE |
| CRITICAL | examples/gamemaker/src/game_view.rs | 2796 | if let Some(mi) = self.draw_alpha.cube.cube.many_instances.take() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/tui_test/src/main.rs | 37 | // ─── Terminal size via ioctl ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 74 | // ─── Raw terminal mode (termios) ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 167 | // ─── Raw byte I/O ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 199 | // ─── Input parsing ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 285 | // ─── CWD display ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 301 | // ─── Rendering constants ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 351 | // ─── App state ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 579 | // ─── Terminal guard (setup + cleanup) ─────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 616 | // ─── Cursor position query ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tui_test/src/main.rs | 661 | // ─── Main ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/shader.rs | 320 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/shader.rs | 322 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/shader.rs | 999 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/shader.rs | 1001 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 19 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 21 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 40 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 42 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 585 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 587 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 1202 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/headless/raster.rs | 1204 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 37 | // ── GUIDs ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 57 | // ── Raw FFI ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 91 | // ── COM vtable definitions ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 192 | // ── TransferVideoFrame helper structs ────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 221 | // ── IMFMediaEngineNotify callback ────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 310 | // ── Helper: raw COM Release ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 321 | // ── Engine creation on MTA thread ────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 485 | // ── WindowsVideoPlayer ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | platform/src/os/windows/windows_video_playback.rs | 693 | // ── Public API ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | libs/vulkan/naga/src/front/wgsl/parse/lexer.rs | 1009 | /// D(𝐡) = ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | libs/vulkan/naga/src/front/wgsl/parse/lexer.rs | 1014 | Token::DocComment("/// D(𝐡) = ───────────────────────────────────────────────────"), | CODE |
| MEDIUM | libs/zune/zune-bmp/src/decoder.rs | 756 | // ┌───────────────┐ | COMMENT |
| MEDIUM | libs/zune/zune-bmp/src/decoder.rs | 761 | // └───────────────┘ | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 1245 | // ── setup ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 1335 | // ── script isolate ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 1524 | // ── logs / agent files ────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 1573 | // ── agent RPC (peek / test) ───────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 1754 | // ── the fixed-step tick ───────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 2149 | // ── camera / render ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 2809 | // ── unit shape geometries ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 2997 | // ── the script API dispatcher ─────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 4460 | // ── writable camera (the chase-cam API, features.md §1) ───────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 4506 | // ── spatial queries (features.md §7) ───────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 4579 | // ── save/load (features.md §9): best laps survive edits ───────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 4661 | // ── HUD extras (features.md §13) ───────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 4855 | // ── physics ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | examples/gamemaker/src/game_view.rs | 5110 | // ── widget plumbing ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | draw/src/shader/draw_pbr.rs | 2166 | // ── 1. SIX FLAT FACES ────────────────────────────────────────────── | COMMENT |
| MEDIUM | draw/src/shader/draw_pbr.rs | 2243 | // ── 2. TWELVE EDGES ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | draw/src/shader/draw_pbr.rs | 2374 | // ── 3. EIGHT CORNERS ─────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | platform/src/os/windows/d3d11.rs | 598 | // Step 1: adopt any background compiles that finished since the last | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 657 | // Step 2: partition by cache state, computing the cache key once. | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 688 | // Step 3: dispatch background compiles. The window presents this | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 706 | // Step 4: serial D3D11 object creation for the cache-hit shaders. | COMMENT |
| LOW | old/studio/src/file_system/file_system.rs | 550 | // now we need to check if a live_design!{} changed or something outside it | COMMENT |
| LOW | old/draw/src/cx_2d.rs | 50 | // ok so we need to check if our turtle position has changed since last time. | COMMENT |
| LOW | old/draw/src/cx_2d.rs | 67 | // ok so we need to check if our turtle position has changed since last time. | COMMENT |
| LOW | old/widgets/src/label.rs | 254 | // here we need to check if the text is empty, if so we need to set it to a space | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 475 | // Step 1: Compute (x1', y1') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 481 | // Step 2: Compute (cx', cy') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 535 | // Step 3: Compute (cx, cy) from (cx', cy') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 541 | // Step 4: Compute theta1 and dtheta | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 295 | // Step 1: the two points with the largest distance, ties broken by deepest combined separation | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 353 | // Step 2: find the point with the maximum triangular area, ties broken by deepest separation | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 392 | // Step 4: get the point that adds the most area outside the current triangle | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 381 | // Step 1: find extreme point that is touching | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 417 | // Step 2: Find farthest point in 2D | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 450 | // Step 3: Find the point with the maximum triangular area | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 478 | // Step 4: get the point that adds the most area outside the current triangle | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 95 | // Step 1: Corefine | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 115 | // Step 2: Classify | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 144 | // Step 3: Manually do union selection | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 28 | // Step 1: Corefine both meshes | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 31 | // Step 2: Classify triangles | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 35 | // Step 3: Select faces based on operation | COMMENT |
| LOW | libs/csg/csg_boolean/src/corefine.rs | 67 | // Step 1: Build AABB trees | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 78 | // Step 2: Find candidate pairs | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 81 | // Step 3: Compute intersection segments for each pair. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 150 | // Step 4: Collect intersection data per triangle | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 159 | // Step 5: Re-triangulate affected triangles | COMMENT |
| LOW | libs/csg/csg_boolean/src/tri_tri.rs | 140 | // Step 5: Compute line of intersection of the two planes. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/tri_tri.rs | 158 | // Step 6: Project triangles onto the intersection line. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/tri_tri.rs | 166 | // Step 7: Check interval overlap | COMMENT |
| LOW | libs/fast_inflate/src/crc32.rs | 156 | // Step 1: fold by 4 loop | COMMENT |
| LOW⚡ | libs/fast_inflate/src/crc32.rs | 178 | // Step 2: fold by 1 loop | COMMENT |
| LOW⚡ | libs/fast_inflate/src/crc32.rs | 183 | // Step 3: reduction from 128 bits to 64 bits | COMMENT |
| LOW | libs/fast_inflate/src/crc32.rs | 197 | // Step 4: Barrett reduction from 64 bits to 32 bits | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 33 | // Step 1: If the range contains only ASCII code points, return early. | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 41 | // Step 2: Ensure that the range does not contain any surrogate code points. | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 48 | // Step 3: Ensure that all scalar values in the range can be encoded as a sequence | COMMENT |
| LOW | libs/regex/src/utf8.rs | 59 | // Step 4: Ensure that all scalar values in the range can be encoded as a single | COMMENT |
| LOW | libs/regex/src/utf8.rs | 79 | // Step 5: Encode all scalar values in the range as a sequence of UTF-8 bytes. | COMMENT |
| LOW | libs/vulkan/bit-set/src/lib.rs | 75 | // one too many. So we need to check if that's the case. We can do that by computing if | COMMENT |
| LOW | libs/vulkan/bit-vec/src/lib.rs | 277 | // one too many. So we need to check if that's the case. We can do that by computing if | COMMENT |
| LOW | libs/crc32fast/src/specialized/pclmulqdq.rs | 86 | // Step 1: fold by 4 loop | COMMENT |
| LOW | libs/crc32fast/src/specialized/pclmulqdq.rs | 108 | // Step 2: fold by 1 loop | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 101 | // Step 1: Find the deepest contact, biased by extremity for frame stability. | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 133 | // Step 2: Find the point most distant from the first contact. | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 156 | // Step 3: Find two more contacts that maximize positive and negative signed area. | COMMENT |
| LOW | libs/zune/zune-jpeg/src/decoder.rs | 496 | // The check is weird, we need to check if ID | COMMENT |
| LOW | libs/memchr/src/ext.rs | 15 | /// The purpose of this function is just to be able to do arithmetic, i.e., | COMMENT |
| LOW | draw/src/cx_2d.rs | 123 | // ok so we need to check if our turtle position has changed since last time. | COMMENT |
| LOW | draw/src/cx_2d.rs | 140 | // ok so we need to check if our turtle position has changed since last time. | COMMENT |
| LOW | widgets/src/label.rs | 304 | // here we need to check if the text is empty, if so we need to set it to a space | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | platform/src/os/windows/d3d11.rs | 598 | // Step 1: adopt any background compiles that finished since the last | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 657 | // Step 2: partition by cache state, computing the cache key once. | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 688 | // Step 3: dispatch background compiles. The window presents this | COMMENT |
| LOW | platform/src/os/windows/d3d11.rs | 706 | // Step 4: serial D3D11 object creation for the cache-hit shaders. | COMMENT |
| LOW⚡ | xr/src/3d.md | 94 | ### Step 1: Move physics into XrEnv | COMMENT |
| LOW⚡ | xr/src/3d.md | 104 | ### Step 2: Remove XrScene | COMMENT |
| LOW⚡ | xr/src/3d.md | 110 | ### Step 3: Rebuild XrRoot from scratch | COMMENT |
| LOW | xr/src/3d.md | 181 | ### Step 4: Create XrView | COMMENT |
| LOW | xr/src/3d.md | 188 | ### Step 5: Update examples/xr/src/main.rs | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 475 | // Step 1: Compute (x1', y1') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 481 | // Step 2: Compute (cx', cy') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 535 | // Step 3: Compute (cx, cy) from (cx', cy') | COMMENT |
| LOW⚡ | libs/svg/src/path_data.rs | 541 | // Step 4: Compute theta1 and dtheta | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 295 | // Step 1: the two points with the largest distance, ties broken by deepest combined separation | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 353 | // Step 2: find the point with the maximum triangular area, ties broken by deepest separation | COMMENT |
| LOW | libs/box3d/src/mesh_contact.rs | 392 | // Step 4: get the point that adds the most area outside the current triangle | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 381 | // Step 1: find extreme point that is touching | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 417 | // Step 2: Find farthest point in 2D | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 450 | // Step 3: Find the point with the maximum triangular area | COMMENT |
| LOW | libs/box3d/src/convex_manifold.rs | 478 | // Step 4: get the point that adds the most area outside the current triangle | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 95 | // Step 1: Corefine | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 115 | // Step 2: Classify | COMMENT |
| LOW | libs/csg/csg/examples/coref_trace.rs | 144 | // Step 3: Manually do union selection | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 28 | // Step 1: Corefine both meshes | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 31 | // Step 2: Classify triangles | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/boolean.rs | 35 | // Step 3: Select faces based on operation | COMMENT |
| LOW | libs/csg/csg_boolean/src/corefine.rs | 67 | // Step 1: Build AABB trees | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 78 | // Step 2: Find candidate pairs | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 81 | // Step 3: Compute intersection segments for each pair. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 150 | // Step 4: Collect intersection data per triangle | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/corefine.rs | 159 | // Step 5: Re-triangulate affected triangles | COMMENT |
| LOW | libs/csg/csg_boolean/src/tri_tri.rs | 140 | // Step 5: Compute line of intersection of the two planes. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/tri_tri.rs | 158 | // Step 6: Project triangles onto the intersection line. | COMMENT |
| LOW⚡ | libs/csg/csg_boolean/src/tri_tri.rs | 166 | // Step 7: Check interval overlap | COMMENT |
| LOW | libs/fast_inflate/src/crc32.rs | 156 | // Step 1: fold by 4 loop | COMMENT |
| LOW⚡ | libs/fast_inflate/src/crc32.rs | 178 | // Step 2: fold by 1 loop | COMMENT |
| LOW⚡ | libs/fast_inflate/src/crc32.rs | 183 | // Step 3: reduction from 128 bits to 64 bits | COMMENT |
| LOW | libs/fast_inflate/src/crc32.rs | 197 | // Step 4: Barrett reduction from 64 bits to 32 bits | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 33 | // Step 1: If the range contains only ASCII code points, return early. | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 41 | // Step 2: Ensure that the range does not contain any surrogate code points. | COMMENT |
| LOW⚡ | libs/regex/src/utf8.rs | 48 | // Step 3: Ensure that all scalar values in the range can be encoded as a sequence | COMMENT |
| LOW | libs/regex/src/utf8.rs | 59 | // Step 4: Ensure that all scalar values in the range can be encoded as a single | COMMENT |
| LOW | libs/regex/src/utf8.rs | 79 | // Step 5: Encode all scalar values in the range as a sequence of UTF-8 bytes. | COMMENT |
| LOW | libs/crc32fast/src/specialized/pclmulqdq.rs | 86 | // Step 1: fold by 4 loop | COMMENT |
| LOW | libs/crc32fast/src/specialized/pclmulqdq.rs | 108 | // Step 2: fold by 1 loop | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 101 | // Step 1: Find the deepest contact, biased by extremity for frame stability. | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 133 | // Step 2: Find the point most distant from the first contact. | COMMENT |
| LOW | libs/rapier/src/geometry/manifold_reduction.rs | 156 | // Step 3: Find two more contacts that maximize positive and negative signed area. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | platform/src/os/linux/android/android.rs | 1876 | // We're not requesting a robust context (false), which is usually fine for most applications. | COMMENT |
| MEDIUM | old/platform/src/os/linux/android/android.rs | 827 | // We're not requesting a robust context (false), which is usually fine for most applications. | COMMENT |
| MEDIUM | libs/makepad_physics/src/narrow_phase.rs | 162 | /// Uses support points for robust separation computation. | COMMENT |
| MEDIUM | libs/csg/csg_exact/src/lib.rs | 1 | // makepad-csg-exact: Exact arithmetic for robust geometric constructions. | COMMENT |
| MEDIUM | libs/csg/csg_boolean/src/tri_tri.rs | 4 | // with Shewchuk's orient3d for robust orientation tests. | COMMENT |
| MEDIUM | libs/csg/csg_boolean/src/tri_tri.rs | 69 | /// Uses robust orient3d predicates for classification. | COMMENT |
| MEDIUM | libs/ttf-parser/src/tables/kern.rs | 440 | // There are no robust way to distinguish them, so we have to guess. | COMMENT |
| MEDIUM | libs/ttf-parser/src/tables/gpos.rs | 414 | // Essentially a `LazyOffsetArray16` but stores additional data required to parse [`PairSet`]. | COMMENT |
| MEDIUM | libs/unicase/src/lib.rs | 12 | //! utilize faster ASCII case comparisons, if both strings are ASCII. | COMMENT |
| MEDIUM | libs/vulkan/naga/src/proc/index.rs | 79 | /// Some graphics hardware provides "robust buffer access", a feature that | COMMENT |
| MEDIUM | libs/vulkan/naga/src/proc/overloads/mod.rs | 165 | /// Essentially, if any one of the arguments is not a constant expression, | COMMENT |
| MEDIUM | libs/vulkan/libloading/src/changelog.rs | 156 | /// pointers in the `.init_array` section. A very similar mechanism exists on systems that utilize | COMMENT |
| MEDIUM | libs/vulkan/libloading/src/changelog.rs | 292 | /// `libloading` used to utilize a snippet written in C to work-around the unlikely possibility | COMMENT |
| MEDIUM | libs/vulkan/indexmap/src/macros.rs | 180 | // allow it to leverage unstable traits like `TrustedLen`. | COMMENT |
| MEDIUM | libs/vulkan/zerocopy/src/layout.rs | 337 | // We use Kani to prove that this method is robust to future increases | COMMENT |
| MEDIUM | libs/tts/Cargo.toml | 21 | # Only the round-trip harness needs an ASR: synthesize, transcribe, compare. | COMMENT |
| MEDIUM | libs/tts/tools/ref_infer.py | 93 | # A 16k copy so Whisper can score it with the same harness. | COMMENT |
| LOW | libs/rapier/src/dynamics/integration_parameters.rs | 259 | #[deprecated = "You can just set the `IntegrationParams::dt` value directly"] | COMMENT |
| MEDIUM | libs/mb3d/src/m3p.rs | 393 | // Keep a minimum amplitude for robust rendering if the file has zeroed legacy values. | COMMENT |
| MEDIUM | libs/zune/zune-jpeg/src/idct.rs | 11 | //! Essentially we provide 2 routines for IDCT, a scalar implementation and a not super optimized | COMMENT |
| MEDIUM | libs/zune/zune-jpeg/src/color_convert/neon64.rs | 43 | // NEON has 32 registers, so it is good idea to utilize a lot of variables at once | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | studio/hub/tests/virtual_fs_test.rs | 20 | .env("GIT_AUTHOR_EMAIL", "test@test.com") | CODE |
| LOW | studio/hub/tests/virtual_fs_test.rs | 22 | .env("GIT_COMMITTER_EMAIL", "test@test.com") | CODE |
| LOW | old/examples/ui_zoo/src/tab_label.rs | 50 | text: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, | CODE |
| LOW | old/examples/ui_zoo/src/tab_label.rs | 50 | text: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 69 | 1 => format!("At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 69 | 1 => format!("At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 71 | 3 => format!("Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 71 | 3 => format!("Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 72 | _ => format!("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod te | CODE |
| LOW⚡ | old/examples/ui_zoo/src/tab_portallist.rs | 72 | _ => format!("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod te | CODE |
| LOW | libs/vulkan/indexmap/src/set.rs | 1261 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/set.rs | 1261 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1604 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1604 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1646 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1646 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1687 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1687 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1738 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map.rs | 1738 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map/iter.rs | 399 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/indexmap/src/map/iter.rs | 399 | /// for word in "Lorem ipsum dolor sit amet".split_whitespace() { | COMMENT |
| LOW | libs/vulkan/zerocopy/agent_docs/style.md | 34 | block inside of a `/// Lorem ipsum...` comment should have lines no more than | CODE |
| LOW | libs/git/tests/integration_test.rs | 10 | .env("GIT_AUTHOR_EMAIL", "test@test.com") | CODE |
| LOW | libs/git/tests/integration_test.rs | 12 | .env("GIT_COMMITTER_EMAIL", "test@test.com") | CODE |
| LOW | libs/git/tests/integration_test.rs | 23 | .env("GIT_AUTHOR_EMAIL", "test@test.com") | CODE |
| LOW | libs/git/tests/integration_test.rs | 25 | .env("GIT_COMMITTER_EMAIL", "test@test.com") | CODE |
| LOW | libs/git/tests/integration_test.rs | 46 | email: "test@test.com".into(), | CODE |
| LOW | libs/git/src/object.rs | 213 | .env("GIT_AUTHOR_EMAIL", "test@test.com") | CODE |
| LOW | libs/git/src/object.rs | 215 | .env("GIT_COMMITTER_EMAIL", "test@test.com") | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 64 | 1 => format!("At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 64 | 1 => format!("At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 66 | 3 => format!("Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 66 | 3 => format!("Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 67 | _ => format!("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod te | CODE |
| LOW⚡ | examples/uizoo/src/tab_portallist.rs | 67 | _ => format!("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod te | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | platform/script/src/pod_heap.rs | 2280 | // AI generated f16/f32 conversions. They look correct at first glance/test | COMMENT |
| HIGH | libs/unicode/unicode-properties/src/lib.rs | 18 | //! Future properties can be added as requested. | COMMENT |
| HIGH | libs/unicode/unicode-bidi/src/implicit.rs | 383 | // Update all processing classes corresponding to the start and end elements, as requested. | COMMENT |
| HIGH | libs/vulkan/zerocopy/src/lib.rs | 6418 | // preserving the count as requested by the user is the behavior that we | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | libs/cfg-if/src/lib.rs | 143 | // block to be annotated with the produced `#[cfg(...)]`. In this example, | COMMENT |
| HIGH | libs/vulkan/cfg-if/src/lib.rs | 143 | // block to be annotated with the produced `#[cfg(...)]`. In this example, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | platform/src/os/linux/android/android.rs | 2802 | // TODO: implement via MediaPlayer when needed | COMMENT |
| LOW | platform/src/os/windows/windows_video_playback.rs | 747 | // TODO: implement via IMFMediaEngine::SetVolume | COMMENT |
| LOW | platform/src/os/windows/windows_video_playback.rs | 751 | // TODO: implement via IMFMediaEngine::SetPlaybackRate | COMMENT |
| LOW | platform/src/os/windows/windows.rs | 787 | // TODO: implement Windows audio-only playback | COMMENT |
| LOW | libs/vulkan/ash/src/entry.rs | 355 | #[cfg(feature = "std")] // TODO: implement when error_in_core is stabilized | COMMENT |
| LOW | libs/rapier/src/dynamics/island_manager/sleep.rs | 81 | // TODO: implement recycling islands to avoid repeated allocations? | COMMENT |
| LOW | libs/rapier/src/dynamics/island_manager/optimizer.rs | 159 | // TODO: implement islands recycling to avoid reallocating every time. | COMMENT |
| LOW | libs/rustybuzz/src/hb/face.rs | 269 | // TODO: Add tests for this. We should use all glyphs from | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/linux/wayland-client/src/event_queue.rs | 51 | /// # // Maintainers: If this example changes, please make sure you also carry those changes over to the delegate_dispat | COMMENT |
| MEDIUM | libs/rapier/src/dynamics/integration_parameters.rs | 143 | /// maintains stability. The defaults work well for most games, but you may want to adjust | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/regex/src/make_fowler_tests.py | 18 | CODE | |
| LOW | libs/regex/src/make_unicode.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/linux/wayland-scanner/src/lib.rs | 10 | //! ## Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/tts/tools/convert_kokoro.py | 33 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libs/mlx/tools/build_qwen35moe_mlx_multimodal.py | 111 | def copy_quantized_text_shards(quantized_model_dir: Path, output_dir: Path): | CODE |