SaaS · Sarvam Startup Program · 2026
ScrollCraft
Scroll-scrubbed websites play a frame sequence as the reader scrolls, which usually takes WebGL, an animation library or a render farm. ScrollCraft draws the frames on a canvas in the browser from a template, a prompt or your own video, lets you edit the site, and exports a self-contained bundle you can host anywhere.
- Ran as a paid SaaS end to end: Auth.js OAuth with GitHub and Google, Razorpay and Lemon Squeezy payments with atomic fulfilment, subscription tiers, Upstash Redis rate limiting, Vercel Blob storage, Zod-validated APIs, Sentry monitoring and Vitest tests.
- Part of the Sarvam Startup Program: Sarvam's LLM powers the in-editor copy assistant, which rewrites a section's words in one undo step and never touches layout, colours or links.
- Then made fully free and open source: no accounts, no database, no paywall. The editor, 21 templates and the export all run in the browser, and uploaded video never leaves the device.
- Exports are plain HTML, CSS and JavaScript with no dependencies, and score 100 on Lighthouse for performance, accessibility, best practices and SEO.
- Also ships as a Claude Code plugin with the same export contract, so a site built by the skill opens in the hosted editor. 62 stars and 189 merged pull requests.
Competition · team Inno8 · 2026
Amazon ML Challenge 2026
Three sources describe the same businesses in the US, India and France with no shared identifiers, and planted decoys copy a real business while changing one detail. The task is to list, for every reference business, the records that describe it. F0.5 scoring makes a wrong merge worth four times a missed match, and France appears only in the test set, with no labels and a different address format.
- 0.940 to 0.988642 in about 44 hours, on one 16 GB laptop plus free Kaggle T4 and P100 GPUs.
- Local validation disagreed with the leaderboard until we found why: test carries 1.887 times as many unmatched records per business as train. Reweighting false positives by it made local and public gains move together.
- Blocking in DuckDB on IDF-weighted rare keys keeps the true entity for 98.13% of pairs; two LightGBM stages then score all 19.2 million candidates.
- Four fine-tuned multilingual E5 cross-encoders read only the 902,470 uncertain pairs, which is what kept them affordable, with a LightGBM stacker over their scores.
- France was handled without labels: a two-model guard, a fixed threshold, and rules gated by hand-read audits and label-free fingerprints.
Python · LightGBM · DuckDB · PyTorch · Multilingual E5
write-up ↗
Tesseract Hackathon 2026 · 2026
impact-adjoint
Simulate a bouncing ball in JAX the natural way and jax.grad returns exactly 0.0 for a derivative whose true value is +0.09, because the impact moves the trajectory in a way the step-by-step derivative never sees. impact-adjoint fixes this with classical saltation-matrix event sensitivities from a Julia solver, served through a Tesseract boundary, then uses the gradients to design structures whose function only exists because of impacts.
- Two components that disagree about how to differentiate, forward-mode duals with analytic event handling in Julia and reverse-mode tracing in JAX, composed into one jax.grad through tesseract-jax.
- Inverse design: a 24-parameter resilience separator that sorts particles by how far they bounce, terrain that routes different inlet speeds to different cups, and a 1.12 m miss cut to 2.7 cm through five bounces.
- Bayesian calibration with NUTS: material parameters recovered with the truth inside both 95% intervals, from 23,440 gradients through the containerised solver over HTTP.
- Checked against solver-independent oracles, including a multi-bounce closed form derived in exact arithmetic that agrees to 7e-12.
- Turned up two silent wrong-gradient bugs in Tesseract itself, both fixed upstream in tesseract-core #667 and tesseract-jax #236. Archived on Zenodo with a DOI.
New SciML package · author and maintainer · 2026
PETScDiffEq.jl
PETSc ships a large, well-tested library of time integrators (TS) used across HPC codes, but reaching it from Julia meant writing against PETSc directly. PETScDiffEq.jl puts TS behind the common SciML interface, so an ODEProblem, SplitODEProblem or DAEProblem is solved with PETSc by changing one argument to solve.
- Wraps PETSc's explicit Runge-Kutta, Rosenbrock-W, BDF and theta, Gauss-Legendre IRK, ARK IMEX, multirate and DAE solvers, plus a pass-through to any other PETSc TS type.
- PETScAdjoint exposes PETSc's discrete adjoint, and reversed time spans let SciMLSensitivity adjoints run through the package.
- Analytic and matrix-free Jacobians, mass matrices, dense output, tstops, callbacks and the full integrator interface.
- Registered in the Julia General registry, v0.3.0 released September 2026; the wrapper bugs it exposed were fixed upstream in PETSc.jl.
Open source · SciML · 2026 - now
OrdinaryDiffEq.jl
OrdinaryDiffEq.jl is the solver library behind DifferentialEquations.jl. I work on the time integrators themselves: new method families, the machinery they share, and the correctness of the adaptive stepping underneath.
- Added the spectral deferred correction family as a new subpackage with TU Hamburg: nine sweepers verified against the qmat reference, adaptive step control and the MIN-SR diagonal sweepers. Parallel-across-nodes and IMEX sweeps are in review.
- Implemented the MRI-GARK multirate infinitesimal family (ERK22a/b, ERK33a, ERK45a, IRK21a, ESDIRK34a, ESDIRK46a) plus MIS2, MRAB, MREEF and MREIL.
- Implemented IMEX SDIRK and ESDIRK schemes (ARS222, ARS232, ARS443, BHR(5,5,3), IMEX-SSP) behind one tableau abstraction shared across the family.
- Found and corrected an error in a published multirate order condition, caught by convergence-order tests with negative controls.
- Fixed adaptivity, Jacobian reuse and error estimation across the BDF, FIRK and Rosenbrock families.
Julia · SciML · Numerical methods
source ↗