Skip to content
View HarleyCoops's full-sized avatar
😁
Cooking what is next
😁
Cooking what is next

Block or report HarleyCoops

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
HarleyCoops/README.md

GitHub Hugging Face Weights & Biases LinkedIn X / Twitter Kaggle

Profile views GitHub followers Total GitHub stars More than 700 public repos

3D contribution chart for HarleyCoops


The Short Version

I'm Christian H. Cooper, an ML engineer working on low-resource language models, reinforcement learning, and agent harnesses. My main research line is Dakota and Cree: turning historical grammars and dictionaries into extracted data, verifiable tasks, reward functions, and models that can be evaluated and corrected.

I also build Math-To-Manim, where a mathematical question becomes a visual explanation, and WorkspaceAlberta Harness, which connects AI tools to practical work for Canadian businesses and skilled trades. Across these projects, I work on the whole loop: prepare the data, build the system, inspect its failures, and measure what improves.

700+
public repos
2,400+
stars on Math-To-Manim
17 / 7 / 8
HF models, datasets, Spaces
82M+
tokens through one GRPO run
Dakota + Cree
low-resource language research

The engineering behind the projects:

  • Model training & fine-tuning — GRPO post-training and LoRA experiments on Tinker and Prime Intellect, with model cards, checkpoints, and training logs on Hugging Face and W&B.
  • Data labeling & dataset engineering — VLM extraction from archival scans, orthography-preserving labeling, synthetic Q&A expansion, structural holdouts, hash-addressed dataset artifacts with citations intact.
  • Reward/verifier design — grammar-derived checks with separate orthography, morphology, and reference-matching scores, so a change in reward can be traced to the scoring code.
  • Visualization that explains — Manim render pipelines, RL training-curve dashboards, LiDAR terrain viewers.

The Movie Wall — Math-To-Manim

Ask a question → get a visual explanation. Math-To-Manim works backward through prerequisites, builds a teaching sequence, checks the mathematics, and turns it into a Manim scene for rendering and review.

I started it on the morning of January 20, 2025, the day DeepSeek-R1 was released. The first project commit records 04:24 Mountain Time. GRPO made me think about recursive self-reasoning: could a system check intermediate results and use that feedback to improve its next attempt? Math-To-Manim gave me something concrete to test. R1's release record marks the same day.

The Traitor Axis — Dzhanibekov T-handle tumbling, RK4-integrated Euler equations, polhode loops on the angular-momentum sphere

The Traitor Axis
Rigid-body chaos from RK4 integration — predicted flip at 3.4 s, simulated at 3.5 s.

The Last Day — one continuous 3D take from eigenmodes through torus, helicoid, catenoid, to a Lorenz attractor

The Last Day
One continuous 3D take: sphere → torus → helicoid → catenoid → Lorenz.

Vortex Leapfrog — two vortex rings leapfrogging, simulated live by Biot-Savart integration

Vortex Leapfrog
Two rings leapfrogging, simulated live by Biot-Savart integration.

Rhombicosidodecahedron rotating

Archimedean solids

Lorenz attractor drawing itself

Lorenz attractor

Animated options volatility surface

Volatility surface — options intuition in motion

Math-To-Manim KimiK3Manim Full showcase

Still in progress: I am using Math-To-Manim as an RL experiment, turning failed scenes and repair attempts into training tasks. Cheap code checks guide rollouts; rendered frames provide slower evaluation. Inference-time revision and RL weight updates are separate steps, and I am still working on the connection between them. Read the experiment notes.


The Training Lab — Dakota, Cree, and GRPO

Can a historical language volume provide enough structure to start a useful training loop?

Dakota1890 starts with Riggs' 1890 grammar and dictionary: preserve the orthography, extract rules, generate tasks, and score outputs against explicit constraints. The experiments have progressed from a 0.6B model to a 35B GRPO adapter.

Cree1865 tests the approach on Watkins' 1865 dictionary, with synthetic bilingual Q&A, a Cree-specific verifier, and LoRA training through Tinker. Its 800-step run, model card, and inference demo are linked below.

The shared idea is grammar as a reward function. I log the scoring components separately to see what the model is learning and where the verifier falls short. A higher score on source-derived tasks does not establish fluency; speaker-led evaluation and correction remain the next stage I want to develop.

Now building: Baguettotron-Dakota1890 connects the Dakota1890 morphology gym to a GRPO fine-tuning stack for PleIAs/Baguettotron.

One Dakota reward formulation illustrates the component breakdown; the Cree verifier uses its own rubric.

reward = (
    0.4 * character_preservation +   # orthography: ŋ š ć ḣ preserved?
    0.4 * affix_accuracy +           # morphology: correct affixes applied?
    0.2 * semantic_correctness       # semantics: meaning vs. ground truth
) * difficulty_multiplier            # curriculum weight, 1.0x → 2.0x
W&B dashboard — Dakota1890 Qwen3.6-35B GRPO run, reward channels restored

Qwen3.6-35B Dakota GRPO — 82.05M tokens, composite reward climbing, ledger audit flat at zero.

Composite reward progression across the 35B Dakota run

Reward progression — every channel logged per step on Weights & Biases.

Railroad Engineer 1959 RL training dashboard

Railroad Engineer 1959 — a rulebook becomes a training environment.

nanochat AQuA-RAT algebra reasoning training curves

nanochat × AQuA-RAT — small-model algebra reasoning, end-to-end RL.

Published model runs

Model Params Method Reported run result
Laguna-XS.2-Adaption-Dakota-QA-GRPO XS GRPO, Prime Hosted Training Reward 0.283 → 0.433, char-F1 0.327 → 0.635
Qwen3.6-35B-A3B-Dakota1890-GRPO 35B GRPO, Tinker 82.05M tokens, audited reward channels
Cree1865 30B-A3B Modified GRPO, Tinker 800-step synthetic-expansion run, live W&B
Qwen3-4B-RailRoadEngineer1959 4B LoRA, volume2gym lineage Rulebook-compiled task families
Qwen3-0.6B-Dakota-Grammar-RL-400 0.6B GRPO, Prime Intellect 400 steps, +150% reward, 97.9% morphology accuracy
nanochat-AquaRat nano RL, AQuA-RAT GSM8K-style → multiple-choice algebra

Math-To-Manim GitHub card Dakota1890 GitHub card

volume2gym GitHub card Cree1865 GitHub card


Data Labeling & Dataset Engineering — Book → Gym → Model

volume2gym develops the broader engineering idea: turn structured source material into cited knowledge units, training tasks, and executable checks. It supports six task families, grouped holdouts, reward ledgers, and SFT/GRPO exports, with hashes that make changes to artifacts detectable.

Task family the compiler emits What it tests
standard_operation Correct ordinary application
edge_case Boundary conditions and missing facts
conflict_resolution Compatible resolution of constraints
exception_handling Exception triggers vs. normal boundaries
violation_check Missing requirements, forbidden actions, bad order
adversarial_distractor Rejection of plausible but unsupported instructions

The 1959 Consolidated Code of Operating Rules lineage: 536 extracted rules → 2,708 scenarios → gym → Qwen3-4B adapter → Rule 99 contract fixture on Hugging Face.

Labeled datasets on the Hub

Dataset What it is Shape
adaption-dakota-english-qa Remastered Dakota–English QA for instruction tuning & GRPO 1,953 examples
dakota-bilingual-qa Bilingual QA pairs from the 1890 dictionary 2,445 examples, train/val
volume2gym-railroad-1959 Rule 99 artifact-contract fixture with ledgers 6 train / 1 held-out

Research and build map connecting sources, datasets, model runs, and public demos


The Archive — The Sources Behind Dakota and Cree

The scans are part of the engineering problem. Diacritics, variant spellings, and dictionary direction matter when text becomes training data. I use VLM extraction and synthetic Q&A to create more tasks from the relationships recorded in each source, while keeping the distinction between extracted material and generated examples.

These historical books are starting points. They cannot capture a living language on their own. The correction loop I want to build retains the prompt, the model's answer, and a speaker's correction with the context that explains the mistake.

Title page of Watkins' 1865 Dictionary of the Cree Language

Cree1865 — Watkins' 1865 dictionary, 98 pages sampled

Macro of Cree diacritical marks in 1865 letterpress

The marks that make it Cree — diacritics as verifiable signal

Diptych: English-to-Cree and Cree-to-English dictionary directions

Two directions — English→Cree and Cree→English

Riggs 1890 Grammar and Dictionary of the Dakota Language scan

Dakota1890 — Riggs' 1890 grammar: 1,497 rules → 10,576 verifiable tasks

Project Source volume Public artifacts
Dakota1890 Riggs 1890 Grammar & Dictionary of the Dakota Language Baguettotron GRPO stack · 35B adapter · Laguna run card
Cree1865 Watkins 1865 Dictionary of the Cree Language HF model · W&B run · explained dashboard · inference Space
Railroad Engineer 1959 1959 Consolidated Code of Operating Rules Qwen3-4B LoRA · dataset fixture

Handwriting and OCR lineage runs through the repo list too — PyLaia (handwritten document analysis), deepseek-ocr, olmocr (PDF linearization for training data), and a reproduction of LeCun 1989 handwritten zip-code recognition — the ancestor of all of this.


WorkspaceAlberta Harness — AI for Businesses and Skilled Trades

I design WorkspaceAlberta Harness, a custom AI terminal that connects business context with procurement evidence from CanadaBuys and Alberta Purchasing Connection. The aim is practical: help an operator assess an opportunity and produce a useful bid brief, document, or working tool.

My work covers connectors, tool routing, persistent task state, and agent procedures that can be improved through reviewed corrections. It applies the same discipline as the training work: keep the evidence visible, distinguish missing information from a confirmed answer, and measure whether the result helps the person doing the job.


Alberta Geospatial & Agent Tooling

Project What it shows
lidar2 Map-driven LiDAR visualizer — OpenTopography DEM → multi-layer 3D terrain point clouds (React, Three.js, custom GLSL elevation shaders)
maplibre-gl-lidar MapLibre plugin for visualizing LiDAR point clouds
openArchive Research UX over BC & Alberta archive collections
AlbertaWorkspaceAgent Agent-native workspace experiments for Alberta research workflows

Hugging Face Hub

Hugging Face profile Models Datasets Spaces

Live demos (Spaces) Try it
Cree1865-Tinker-Inference Sample from the Cree1865 training run
Dakota-.6B Dakota grammar RL demo
AskAboutCIL Community-in-the-loop method explainer

Weights & Biases

The linked training runs expose reward curves and component metrics. I use these logs to investigate failures and check whether the recorded rewards agree with the verifier.

W&B profile Cree1865 run Dakota trainer run Explained dashboard


Stack

Python, PyTorch, TypeScript, React, Three.js, Docker, GCP, Git

GRPO and RL post-training Transformers, PEFT, LoRA Tinker and Prime Intellect training infra Weights and Biases Manim VLM extraction and OCR Gradio LangChain and MCP Quantitative finance


Market Wire

Live — refreshed every 6 hours by a GitHub Action from CNBC, Reuters, and FT feeds.

Category Date Headline
Market Sep 25, 2026 Appeals court rules that states can regulate Kalshi’s sports prediction markets, dealing another ...
Market Sep 25, 2026 Crypto platform Bitget suspects North Korea is responsible for $352 million hack
Market Sep 25, 2026 China's Xi urges U.S. to cooperate on AI
Market Sep 25, 2026 Here's who attended the Trump-Xi state dinner
Market Sep 24, 2026 Philadelphia Fed's Anna Paulson says 'modest' rate moves likely ahead to tame inflation
Finance Sep 25, 2026 Soaring bond yields ‘not even close’ to cooling red-hot US economy, investors say
Finance Sep 25, 2026 US bond sell-off pushes long-term yields to highest since 2004
Finance Sep 25, 2026 Bond ructions point to new danger zone in markets
Finance Sep 25, 2026 Maga base recoils as Trump goes all-in on AI
Finance Sep 25, 2026 Pomp prevails over substance as Trump hosts Xi

GitHub Analytics

Open stats dashboards

GitHub streak stats

GitHub stats Top languages

GitHub profile summary card

GitHub activity graph

Star history — Math-To-Manim

Math-To-Manim star history chart


Receipts

Small artifacts I keep around

Karpathy comment screenshot

Google Scholar screenshot


Connect

GitHub · Hugging Face · Weights & Biases · LinkedIn · X · Kaggle

Interested in low-resource language modeling, RL environments, or agent harnesses? The repos and run cards above show how I work. Get in touch if you are building in the same direction.

Footer banner

Pinned Loading

  1. Dakota1890 Dakota1890 Public

    Using GRPO and a modified compositional reward function to train an opensource model on the 1890 Dakota Dictionary

    HTML 14

  2. Cree1865 Cree1865 Public

    A testable RL environment for the Cree language reconstructed using modified GRPO and LoRA

    Python

  3. Math-To-Manim Math-To-Manim Public

    Create Epic Math and Physics Animations & Study Notes From Text and Images.

    Python 2.7k 290

  4. volume2gym volume2gym Public

    Python

  5. nanochat561 nanochat561 Public

    Forked from karpathy/nanochat

    The best ChatGPT that $250 can buy.

    Python 6 2

  6. TinyRecursiveInference TinyRecursiveInference Public

    Forked from SamsungSAILMontreal/TinyRecursiveModels

    Python