Skip to content
View GuoCheng24's full-sized avatar

Block or report GuoCheng24

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
GuoCheng24/README.md

Guo Cheng

Medical imaging, inverse problems, and the evaluation of AI systems. I work at both ends — the applied mathematics and the code that checks whether it survived contact with data. Most of what is public here is a harness: something built to prove its own headline number wrong, which says so in the README when it succeeds. The methods work sits mainly in unreleased repositories; what you can read below is the part I can show.

Recent examples of that working: on TopCoW a random assignment of fragments cut the break rate as much as the repairs I had built, so topocheck ships that baseline as one of its five checks — if your repair does not beat random, it prints beats random: False; and a reproduction of an official CT pipeline needed seven undocumented layers before its number matched, each one written down in DEBUGGING.md.

Contributions to other people's projects

Bugs found by reading someone else's source, each submitted with a reproduction and a before/after table. Four are merged. The two in MLEvolve went in about a day after filing, with no review comments — the same defect family both times: a check that silently produces a plausible wrong answer instead of failing. The open one in ODL is the oldest: a shifted detector had been dropped without a warning since 2016, and the two backends had drifted into disagreeing about it.

WhereWhatStatus
odlgroup/odl — operator discretization library, 433 stars, shipping 1.0#1730 ASTRA's non-vector parallel geometry has no slot for a detector position, so in 2d parallel beam a shifted detector was silently discarded — issue #359, open since 2016, and by now the CUDA and CPU backends disagreed on the same geometry with no warning. Found by a guard that requires every mismatch axis to change the sinogram; it changed it by exactly 0.0. Regression test fails on the unpatched code with the two sinograms bit-identicalopen, maintainer review addressed
InternScience/MLEvolve — the agent that competes on MLE-bench#8 a data-leakage guard, on by default, compared floats with == — so the 117 lines behind it had never once run · #9 the memory block sorted minimise-metrics backwards, so the model was shown the worst sibling and told it was the bestboth merged, and now third contributor
github/awesome-copilot — GitHub's own collectionresearch-harness-engineer, an agent definition for running research as a falsification loop · #2938 one row of their contributor table carried eight cells at width="14.28%" each, so the last avatar overflowed the table and rendered narrower than the restboth merged, and on the contributor wall
InternScience/InternAgent#27 a task was configured to maximise test-set MSE, so a worse error scored as progress and was rewarded. One characteropen
ResearAI/DeepScientist#110pytest aborted collection on a clean checkout — 56 test files lost to one undeclared optional import, in a repository whose CONTRIBUTING tells you to run exactly thatopen

Things I maintain

ProjectWhat it does, and the number it stands on
breakthrough-harnessMake a research agent hard to fool. Adapters for nine stacks; every claim in the README is asserted by a test. Works with DeepSeek Harness with nothing to copy — its skill provider scans .agents/skills, which this repo already has.
ct-reconstruction-harnessReproduce the LoDoPaB-CT baselines from scratch, then beat one with a paired test: the matched TV recipe is 33.00 ± 0.33 against a published 33.36, and a generate-and-select loop finds TGV ratio 0.3 at +0.70 ± 0.04 dB over it, paired on the same 128 held-out images, winning 125 of them. Its first table quoted the first 16 images, which run 0.8 dB easy; the README now says so and withdraws the claim that rested on them. Every guard is run against a deliberately broken operator, and one of them found the ODL bug above.
ifeval-reproductionReproducing a published IFEval score on one shared GPU. Three arms and a pre-registration chain that CI re-hashes on every push. The third arm looked like an 11-point gain from thinking mode until the paired test showed the first arm scores the same on those same prompts — the subsample was easier.
topocheckFive checks for topology-aware segmentation claims — including the random-repair baseline that beat every learned repair I tried.
scholarcheck · sciglyph · docxauditOn PyPI, and installed by people I have never met. Verify citations before a reviewer does; publication figures that check their own layout; find what a converter silently dropped.
worldmodel-from-scratchBuild a world model in an afternoon, then measure where it breaks. The README separates claims that hold on any machine from those that do not, and CI checks only the first kind.
world-model-mapA researcher's map of open-source world models — what each one actually claims, what its authors say it cannot do, and an evidence grade per entry. CI re-resolves every citation.
kakeya-conjecture-labAn interactive lab for the Kakeya conjecture. The dimension meter recomputes its own numbers in the test suite, so the page cannot drift from the mathematics.

Who actually uses this

Stars are a poor signal at this size, so here is clone traffic instead.

A correction I had to make to my own table. GitHub counts every Actions checkout as a clone, and my CI runs on push. In the first version of this section, between 13% and 56% of each repository's "clones" were my own workflows — worldmodel-from-scratch showed 250 clones by 64 people, of which about 140 were CI. The first column now counts only days on which no workflow ran in that repository at all. That reorders the table completely and cuts the largest figure from 64 people to 5. The raw totals sit beside it so you can see the size of the correction instead of taking my word for it.

You cannot re-run these yourself, because the traffic endpoint is visible only to a repository's owner. So the raw API response — every day, with that day's CI-run count — is committed to data/traffic.json. Each badge is a live shields.io query against that file, not a picture of a number, and its history shows the figures accumulating over time. The PyPI badges link to pypistats.org, which is public: those four numbers you can check without me.

RepositoryPeople who cloned it, CI excluded (2026-09-08)Raw totalPyPI / month
docxaudit
scholarcheck
kakeya-conjecture-lab
sciglyph
topocheck
worldmodel-from-scratch
world-model-map
breakthrough-harness
ifeval-reproduction
ct-reconstruction-harness

Work that is not public yet

Most of the methods work is in unreleased repositories, because a paper or a filing is still open. It is described only in outline: an idea in submission is easy to take and hard to get back. This section exists so the public half of the page is not mistaken for the whole of it.

Four lines are open at the moment. Between them they cover guarantees for medical image segmentation, what a pre-treatment image can and cannot establish about a treatment decision, image synthesis for adaptive radiotherapy, and prognostic markers in functional imaging. One has a patent filed against it; two are with reviewers; one is written and held.

What they have in common is the part I would rather be judged on than the individual results: each began with a measured ceiling and a random baseline before any method was built, each carries a shuffled or permuted control wherever one is definable, and each has a written record of the attempts that did not survive those checks. Several lines were closed on exactly that basis, which is why there are four here rather than a dozen.

Happy to go into any of it properly in a conversation.

How I work

Numbers go to disk before sentences are written about them. Every guard is run against a deliberately broken input and has to fail for the right reason before it counts. When a result does not survive that, the repository says so — the honest number is more useful than the flattering one.

Pinned Loading

  1. breakthrough-harnessbreakthrough-harnessPublic

    Make your research agent hard to fool — the discipline layer for agentic research: breakthrough loop, hard-to-fool harness checklist, claim-polarity gates, engineering rules with their tuition

    Python 1

  2. worldmodel-from-scratchworldmodel-from-scratchPublic

    Build a world model in an afternoon, then find out where it breaks. Six runnable lessons; every number in the README is checked against the real output.

    Python 1

  3. sciglyphsciglyphPublic

    Publication-quality scientific illustration in pure matplotlib - no BioRender, no Illustrator

    Python 4

  4. docxauditdocxauditPublic

    Find what your converter silently dropped from a .docx - namespace, table, figure and font failures that render fine until they do not. Zero dependencies.

    Python 1

  5. kakeya-conjecture-labkakeya-conjecture-labPublic

    A needle that points every direction yet occupies no volume. An interactive lab for the Kakeya conjecture - including a box-counting meter that shows why no computation can settle it.

    JavaScript 1

  6. scholarcheckscholarcheckPublic

    Stop hallucinated citations - verify any reference against real metadata. Zero dependencies.

    Python 1