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

TDA manuscript: exact fixed-two-bar deficit

fixed two-bar case, actually enumerate the source + diagonal options. ties count with multiplicity; don't lose one just because the costs happen to match Worked window in Supplement S2: a=0.049 , b=0.105 , midpoint c=0.077 , half-width h=0.028 ....

TDA manuscript: AI-review questions and framing

Interesting experiment- how well does AI critique? useful ones: what am i preserving, what gets discarded, why choose this over the simpler calculation? source provenance: the files are stored under Claude Review . Their referee-report style and...

THALis: primer-to-code consistency checklist

trace ONE window all the way from filter to hand command. primer and code should agree on the intermediate objects, especially covariance / tangent space / readout primer architecture: filter EEG, estimate sliding covariance, log-map it to...

THALis: seven-population anatomical model

7 populations, signed connections, PT readout. check the stability notation... spectral radius can't be negative, need the largest real part where i'm talking about continuous-time stability model in the anatomical draft: a two-dimensional...

THALis: tangents worth keeping as questions

tangents parking lot: Takens, PLLs, bifurcations, time scales... a loop still doesn't tell me speed or phase. keep coming back to that manifold question: does low-dimensional activity reflect a circuit constraint, a restricted task, or both?...

THALis: literature-review map for EEG topology

TDA on EEG can mean direct signal, connectivity, or delay clouds. need to check which object each paper is actually using before borrowing the method three analysis routes preserved in the review notes: filtration directly on a signal, topology...

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: constructive reservoir-weight problem

can i build W and U around the feature geometry instead of hoping a random matrix behaves? keep the desired modes + input projection explicit, spectral radius alone isn't the full story february open problem: given Riemannian feature trajectories...

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: early architecture alternatives

EEG / reservoir / hand / maybe EMG + feedback... lots of possible pieces. keep the options here without making all of them prerequisites for the first version brainstorm structure: divide the prosthesis into mechanics, control, sensing and...

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...