Notes from my online journal [krishna-bhatt.com]

A collection of notes, random thoughts, and observations (mostly unintelligible). Unfortunately, I cannot post everything publicly due to IP. Cheers! -Krishna

Latest posts

NeuroReach: prototype-to-pilot boundary

rehab game work + support groups + a few test users over the summer. Clinic access still slow; keep track of what was actually running in each session, live EEG vs mock vs camera stub recorded summer activity: adapting the EEG-control project...

EvolMoves: cloud-budget reference structure

cloud budget = more than chains × CPU price. include parsing, retries, idle VM time, storage etc... all the tiny charges add up :/ retrospective summer 2026 direction: move the evaluation framework toward standard published protocols and cloud...

NeuroReach: feasibility measures and data model

first things to track: setup time, comfort, instructions making sense, abandoned sessions. Save difficulty + normalization alongside scores or future me gets a graph of ??? First evaluation goal: setup feasibility, instruction comprehension,...

EvolMoves: evaluation axes and code-reading map

alignment accuracy, tree recovery, parameter recovery, mixing — separate axes. faster iterations are nice but ESS/time is the more useful number. Also come back to the fixed-tree vs fixed-alignment controls. code-reading pointers in the plan:...

Biological and simulated alignment benchmarks

need both biological + simulated cases. simulation gives known history; structural references are a different check, can't just call both “truth” and move on. saved reference: BAli-Phy biological-versus-simulation evaluation . The June 13...

THALis: March-session postprocessing checklist

header fixes + video conversions, keep source → derived links. column reorder or just relabel? also frame timing, same recurring headache archived changes: b6b6d90 organizes March 1 trials, remaps electrode headers and fixes...

THALis: reservoir-realization draft

what do i mean by realization here, precisely. connect the state / observation / readout objects to the features in code, don't leave the math floating off by itself archived document (ac4a37c): realization.tex/pdf replaces an earlier proposal,...

THALis: March 1 recording inventory

March 1 recordings need an index. montage + clock info + matching files + exclusions, folders alone aren't enough for me to reconstruct the session Date provenance: the archive's March 2 commits 10aff2b , 0fca0e9 and b6b6d90 contain recordings...

THALis: rhythmic-EEG TDA comparisons

Riemannian vs no-Riemannian runs: what actually changed besides the name? scale, dimension, distance... keep those matched before getting excited about different loops commit 09f599e: tda_eeg_pipeline.py , playground.py , extensions to tda.py ,...

THALis: experiment-folder and conversion map

folder rename ≠ new experiment, keep the mapping. also check what WebM → MP4 does to timestamps / frame count, don't quietly lose the original timing folder changes (4585bf7, 723d039): rhythmic February 22 runs become feb22lt_rhythmic/run1...

THALis: electrode-header remapping

electrode rename vs physically different montage — need to be VERY clear which. model won't complain if i feed it the wrong channel order, it'll just use it Manual and automated changes ( 4aacf54 , aad3c28 ): electrode names are remapped in...

THALis: covariance and Riemannian feature pipeline

window → covariance → tangent features, interesting shift from looking at each channel alone. draw what shrinkage does to a nearly flat covariance ellipsoid later archived module (fb0bfe7): src/control/riemann_features.py implements...

THALis: data collector repository extraction

collector moving out of the main repo. pin both versions with the session somehow, otherwise which frontend produced which analysis input?? archived change (f5ccae3): the React eeg-collector application is removed from the main repository and...

THALis: February 22 multimodal session bundle

Feb 22 bundle: EEG, cue times, video, overlay, landmarks. make a per-trial map before this turns into matching files by vibes Archived acquisition ( 1f8e3eb ): the session includes rhythmic and sustained/practice-style trial groups, each with EEG...

THALis: retaining raw and overlaid video

keep raw video AND overlay. rerunning the tracker later is much easier if i haven't baked its guesses into the only copy archived change (a932083): CameraRecorder.jsx saves the unprocessed webcam feed alongside the MediaPipe-overlay recording....

THALis: theory directory and open-problem index

proof/ → theory/, plus a place for open problems. separate what needs a derivation from what needs an experiment; otherwise i just keep circling the same questions reorganization (3fda9ec): src/proof/ becomes src/theory/ ; formal documents and...

THALis: formal setup and technical summary

write out latent dynamics → EEG observation → readout assumptions. where does the actual code fit into this, and what would make the model inapplicable? archived documents (5cb035f): m1_reservoir_formal.tex and technical_summary.md ,...

THALis: repository artifact policy

LaTeX crumbs everywhere... aux, log, fls etc can go. keep enough to rebuild, but check i'm not ignoring the only surviving output along with the junk cleanup (6a5adaf, 0640c79): LaTeX auxiliary files are removed and ignore rules expanded for...

THALis: README and figure provenance

README figures need breadcrumbs back to the run. data id + config + script near the image would save so much hunting later documentation commits: 4f4b43e adds the project title and status; 124da36 adds figures under img/ . The archive identifies...

THALis: phase-specific TDA

prep / execution / rest: where exactly am i cutting these? cue time isn't necessarily movement onset, and windows crossing the boundary could get messy recorded extension (e7f5e25): the TDA pipeline adds multiphase analysis and generates another...

THALis: virtual-hand collection interface

50 poses, 2 s holds, 1.2 s transitions — need a clear target without making the UI distracting. maybe previewing the next pose helps timing, or maybe it just encourages anticipation app split (0d32926): ClassificationMode.jsx ,...

THALis: initial topological-analysis pipeline

window → delay cloud → persistence diagram, lots of knobs in between. keep delay / dimension / filtration / scale with the output or i'll just have a folder of mysterious plots archive (eb1afda): tda.py adds delay-coordinate embedding,...

THALis: anatomical-prior model

anatomical prior could take some of the burden off EEG. how much motion comes from the signal vs constraints though? similar question in animation, good rig doing half the work archived artifact (1e6fa3d): anatomical.py , later reorganized as...

THALis: trained-model artifact bundle

save the whole model bundle, not just the classifier!! CSP + normalizer + channel order need to match. future me is not going to remember which set of settings went with a random pkl Saved bundle ( c059325 ): data/models/tip-classifier-base/...

THALis: sorting and trimming EEG CSVs

sort + trim CSV, sounds harmless enough. keep the originals and make sure labels move WITH the rows; check duplicates and experiment boundaries utility: sortCSV.py , first recorded at src/utils/sortCSV.py in 5c83dda , later moved to src/tools/ ....

THALis: live EEG visualization modules

RMS / traces / topomap / quality display — different things, don't read them as interchangeable. deliberately awful synthetic input might be a good way to test whether these views actually help archived modules (adba8f3): console.py...

THALis: cue sequencing and skipped-trial bug

skipped trial bug = labels potentially wrong too, ugh. check screen sequence against saved cue times, especially pause/restart collector: Vite/React/Tailwind application originally under src/applets/eeg-collector/ , introduced in 87ea7d6 ....

THALis: December 26 labeled recordings

Dec 26 files belong together: EEG + cues + about.txt. need to sort out the row/event counts and clock alignment before treating this as labeled data Session artifacts: dec26lt1 and dec26lt2 , committed the following day in bafc10e . Each has EEG...

THALis: startup burn-in and DC removal

15 sec burn-in — wall time or actual samples received? reset behavior on reconnect too, don't carry an old running mean into a new stream archived change: e752b94 adds burn-in state management to streaming, running-mean DC removal to...

THALis: CSP features and LDA readout

CSP → normalizer → LDA → smoothed probabilities, keep the fitted order straight. smoothing is nice until the hand feels late... need to look at that tradeoff feature layer (eee5ef2): DualBandPairwiseCSP learns class-pair spatial filters...

THALis: preprocessing stages and namespace change

alpha + beta filters, notch, DC removal... need to keep track of what happens where. compare a sharp transient before/after each stage sometime, curious how much gets smeared implementation references: 9c8ef22 introduces EEGPreprocessor in...

THALis: streaming callback architecture

callback → buffer → processing, keep the sample shape consistent. plotting / writing to disk shouldn't be sitting there holding up acquisition archived change: commit 726b357 expands stream.py and adds src/main.py as the entry point. The...

THALis: Unicorn LSL acquisition

8 channels, 250 Hz, EEGdata.csv. note to self: channel order + timestamps + dropped samples BEFORE doing anything clever with the numbers Archived implementation: commit 784f088 adds main.py for connecting to the Unicorn Hybrid Black through Lab...

THALis: streaming and hand-simulation separation

hand sim first with predictable inputs, no EEG involved. if a joint does something weird i need to know which side broke; small command replay tool might be useful later archived reorganization: b249471 moves acquisition into...

THALis: repository starting point

basically an empty README here :) keeping the starting point around. useful to trace when the streaming + hand sim + analysis actually became separate pieces archived change: commit f09a4fe creates an empty README.md . No streaming, control or...

THALis: motor-manifold reading map

motor manifold papers → keep the observation map in mind, not just the nice latent-space plots. how much of that structure can i actually see through 8 scalp channels? also how much is just the task being simple research question: which aspects...

Holmes Lab: end-of-series reference index

putting the summer pointers here before everything becomes a mystery folder. keep commands, seeds, versions, control files... a plot alone is not going to help me rerun anything. dated record: August 11 is the final summer meeting in the shared...

ReconBench: empirical parameters, synthetic truth

biological params → synthetic cases w/ known history → reconstruction tests. Keep the dependencies between params, random plausible values individually could still make a very weird family together. Benchmark problem: using an already...

EvolDeeds: likelihood, mixing and user credit

high likelihood but chain stuck in one spot... not really the win to reward. Need credit for exploration too; revisit ESS + clade summaries before deciding what the score should mean. working distinction: a high joint log-likelihood and good...

Genome-browser demonstrations to revisit

saving the JBrowse demos, especially the synchronized views. how does a selected sequence / column / node keep its identity across panes? also maybe a back button for selections would be useful, not just more settings. july 7 references:...

EvolDeeds: joint reconstruction objects

alignment + tree + ancestral history = one state. no casually swapping bits between samples and creating a franken-tree; scoring inputs need to travel together meeting topic: June 30 covered EvolDeeds, indel models and pairHMMs. The later...

PairHMM and substitution-model study pointers

substitutions vs indels vs alignment paths—separate piles before this becomes model soup. pairHMM: which paths get summed over, which one gets picked? meeting topic: the June 23 log identifies substitution models of sequence evolution and...

Holmes Lab: summer project map

summer reading map, otherwise these repos are going to blend together in my head. Main thing to keep asking: what's fixed input vs what the sampler can actually change? dated record: June 9 begins the 2025 summer lab meeting series. The meeting...

HomeBuilt: Benji-to-Build-Pack contract

Benji → review → sourcing, don’t lose the review bit. Need units / dimensions / quantities attached to the design revision, otherwise the pretty picture and the parts can drift apart Walkthrough in the pitch: photograph the intended space,...