You are browsing as a guest. Sign up (or log in) to start making projects!

allisonly_huang

@allisonly_huang

Joined June 26th, 2026

  • 8Devlogs
  • 7Projects
  • 2Ships
  • 15Votes
Hi, I'm Allison.

Biology and computation have been separate for a long time. With a new level of quantiative definition in how we look at cellular systems, I am extremely fascinated by and want to be building between computation/engineering/AI and neuroscience for disease therapeutics.

Learning python + data analysis + app dev + network diffusion.
Ship Pending review

Kinesia is a gamified Parkinson’s disease tracker built for both patients and clinicians that makes symptom management and daily life easier for those living with Parkinson’s.

Studies show that popular tracking methods for Parkinson’s like home diaries are highly susceptible to a patient’s subjectivity, creating inaccuracies in data that disrupt medication efficacy, skew clinical decisions, and negatively impact patients’ well being. Even with modern tracking technologies, broader surveys show only 34% of patients actively tracked their symptoms over the year.

Instead of asking patients to describe their own symptoms, Kinesia allows their movements to speak for them. Patients play short gardening themed games that measure akinesia-like, bradykinesia-like, and dyskinesia-like symptoms. Patients tend to their garden through taking doses on time and completing mobile games, and are encouraged through daily streaks.

Each game is based on established clinical trials, adapted to work reliably at home. The plant watering game uses the finger tapping test, a reliable measure of bradykinesia. We also added a decrement that measures when taps slow and shrink over time. Firefly catching adapts a reaction time test, and we split each response into movement initiation and time to reach the target, telling a clinician whether a patient struggles to initiate a movement or execute it fully. In constellation tracing, the patient swipes along a constellation instead of typing or spiral tracing, which are too noisy or difficult on a small screen. Together, these choices allow the data that reaches the clinician to reflect the patient’s movement.

While some clinicians note that apps generate data without clear relevance or meaning, Kinesia visualizes data based on frequent use in clinical settings. Each task’s graphs show when the test was taken, test performance in relation to dosage, a primary statistic that reflects performance, and detailed statistics to elucidate patients’ movement symptoms. For example, tapping graphs not only display overall speed on the primary graph, but also rhythm, decrement, accuracy, and drift on the detailed graph, which can explain the cause of a symptom.

The cost of unreliable tracking in Parkinson’s is often hidden—a decision that wasn’t made, or information that was lost to memory. But with an incurable disease that demands lifetime management, each choice shapes a patient’s daily life. It decides whether or not they can play sports with a loved one, speak uninterrupted, and move with freedom. With Kinesia, patients and their caretakers can have better and easier care.

Want to see the app demo? Here’s the youtube link: https://www.youtube.com/watch?v=NmDAg-RShnE&t=9s

  • 4 devlogs
  • 8h
Try project → See source code →
Open comments for this post

1h 8m 3s logged

Finished data collection in CoreData + started on UI

Setting up CoreData was 70% researching how it works and 30% actual coding, only to produce a very simple table that I feel could have been accomplished in two hours. But we move on.

Set up health data fetching from apple watch to be normalized to midnight in order to allow the symptom tests taken throughout the day to be all linked to the same date.

Some key UI design choices:

  • swiping to access different sections of the app instead of small menus
  • calming/warm colors
  • large text

I have not done pixel art before and creating an entire plants and farming asset would take too long so I think I’ll go with modifying existing pixel art assets.

0
0
12
Open comments for this post

2h 47m 51s logged

Apple CoreData Organization for Movement Tests

Finished organizing and setting up the entities and attributes using apple’s CoreData for the app.

Each entity stores data that needs to be analyzed by the clinician for each test/log type, including AkinesiaResult, BradykinesiaResult, DexterityResult, MedicationLog, and so on.

Each test will have specific parameters calculated by the touchscreen inputs based on what’s important to be measured. For example, the dexterity test requires completing a swipe sequence on the screen and measuring the distance between the user’s input and the predefined path. Attributes of the DexterityResult entity would be rmsError (root mean square error), avgSwipeSpeed, swipeDist, cvSwipeSpeed (correlation of variation of the swipe speed) etc.

Probably spent way too much time researching exactly which parameters should be added but you can never be too meticulous.

0
0
10
Ship Changes requested

Desktop Cat Vending Machine

This project is an interactive desktop widget built in Python using Tkinter. The application runs as a frameless, transparent overlay pinned above your active windows.

When a user left-clicks the vending machine, it runs a brief vending machine like shake animation and dispenses a random cat image pulled from a local asset folder. The dispensed images automatically disappear after 5 seconds or close immediately when clicked.

Primary Challenges:
The main challenge was ensuring the application could reliably locate its image assets when executed on other devices or compiled into a standalone binary. Standard relative pathing broke depending on the user’s working directory, but I resolved this by using an environment-aware utility that checks sys.frozen to toggle the asset lookup root between the local script file and the compiled executable path.

Input Spamming: Rapidly clicking the widget queued multiple overlapping movement instructions, causing the layout to be distorted. I fixed this by introducing a state lock that ignores incoming click inputs while a dispense animation sequence is actively running.

What are you proud of?
Instead of building a fragile script that crashes under unexpected conditions, if the image directory is missing, empty, or contains corrupted files, a try-except block intercepts the failure and falls back to a procedurally generated default text UI. I also ensured that window creation and destruction properly clear memory references to prevent resource leaks during extended use. This might be a standard feature, but as a very beginner python programmer, it’s something I’m still relatively proud of.

Controls: Left-click the vending machine to dispense an item. Left-click the spawned image to dismiss it early. Right-click the vending machine to close the application entirely.

Customization: The application scans the cat_library directory dynamically. You can add, remove, or change the contents of this folder with your own images (.png, .jpg, .gif, etc.) to modify what the machine dispenses.

Environment: If running from the source code, ensure you have Python 3 installed and have run pip install Pillow to handle the graphic resizing. Otherwise, launch the standalone executable directly.

Finally, this project was made the day before my friend’s birthday as a mildly crammed last-minute gift. So, keep this on your own desktop for a cat companion while you work, or share some cats with your friends as well.

  • 1 devlog
  • 2h
Try project → See source code →
Open comments for this post

1h 40m 29s logged

Don’t have a cat? This project will give you 70 random ones, for 5 seconds each.

My friend’s birthday is tomorrow. I am too broke to buy a gift, so I made this project in one sitting. That is why there is only one devlog (apologies Hackclub staff) and much less time logged than I actually spent on it (~4.5 hours).

I often get sent cat reels from him, so I decided to bring the cats directly to his desktop: through a desktop-pet style vending machine that dispenses random cats (with a kirby easter egg).

This project was made in python using tkinter for desktop applications and Pillow for advanced image resizing and rendering.

Most of the trials and tribulations came from getting the vending machine animation to look right and the cat library to be actually accessed instead of always falling back on the try catch.

Anyway, here is a cat vending machine.

0
0
3
Open comments for this post

49m 5s logged

Alzheimer’s Disease eats away at your brain before symptoms even show up.

AD is driven by a misfolded protein called tau, which essentially clogs up the brain and kills neurons irreversibly. Misfolded tau induces other tau to misfold, essentially spreading across the brain’s connectome like a contact disease.

The thing is, this looks different for everyone–but time is of the essence, and clinicians can’t waste time and money on treatments that might not work when the brain is actively deteriorating.

I’m building TauPropagation, a network diffusion model (or reaction diffusion if I can get someone to help me out) to predict tau propagation throughout the brain in Alzheimer’s disease. Not only will this help clinicians make better treatment decisions, but it also serves as a basis for modeling how drugs (like monoclonal antibodies) might clear tau, which will hopefully be the second branch of this project.

A lot of math and a lot of computer science and a lot of fumbling with biological variables but we’ll make it through.

0
0
2
Open comments for this post

2h 52m logged

Core functions of the app complete: bradykinesia, dexterity, tremors, and more

Looked into apple’s HealthKit and movement disorder API for tracking tremors so that’s what I’ll be using. As long as everything stays local, the law will not be after me.

Each of the mobile symptom tests go like this:

  • Bradykinesia: finger tapping test that measures the time between each tap, how much the taps drift across the screen, and how those variables change with time.
  • Akinesia: the time it takes for a motion to start
  • Dexterity: swiping test for measuring amplitude, speed, etc.

Next will be coding the actual UI 🏃‍♂️

0
0
8
Open comments for this post

1h 46m 1s logged

Final model parameters done - but will it survive in print?

After a week of speedrunning how to use Autodesk Fusion (this was before I joined Stardance) and understanding TPMS shapes, I got down the final parameters that reached over double the target surface area.

A gyroid is described by the following equation:

cos(x)sin(y) + cos(y)sin(z) + cos(z)sin(x) = c,

where at c=0 the gyroid is at the minimum possible surface area. This also describes the relative density of the 3d shape.

After failing to reach the desired surface area using only autodesk fusion, I switched to MSLattice, which is specifically built for modeling TPMS structures, and finally got measurements I was content with: around 14082.717mm^2 for a 20x25mm cylinder filter.

This means 14082.717mm^2 worth of biofilm that can trap contaminants and produce clean air and water.

Will this print with a 0.4mm nozzle? The wall thickness I manually measured to be about 0.8mm so theoretically it’s fine but we’ll see.

0
0
4
Open comments for this post

1h 40m 2s logged

Maximum Surface Area Biofilter

Biofilters filter contaminants by using fungi, bacteria, and other micro-organisms that form a biofilm to trap contaminants as the fluid flows through.

This is used in air pollution control, water purification, and more.

So, intuitively, to maximize the contaminants trapped, the water must contact as much of the biofilm as possible——in other words, the filter must maximize surface area.

So my goal is to:

  • create a 3D CAD model of a Biofilter that maximizes surface area for most efficient filtering of fluid
0
0
3
Open comments for this post

1h 11m 57s logged

Parkinson’s tracker apps aren’t built for Parkinson’s patients.

Parkinson’s (PD) is a movement disorder, meaning patients have:

  • tremors in their hands
  • rigid and slow movements

in addition to dementia and cognitive impairment.

So it’s important that patients track their sleep, medication adherence, symptoms, etc. so clinicians know how to adjust their treatment to fully support rehabilitation.

but current apps: sterile and condensed UI with small buttons, complex menus and nav, low incentive…are not ideal. That’s why up to 75% of patients don’t use their tracking app more than 10 times after first downloading.

my app solution:

a gamified PD tracker that prioritizes:

  • accessible UI/UX
  • calming + aesthetic graphics
  • incentive

so far we’ve got:

  • swiping instead of menus
  • cat garden/farm concept
  • slightly punitive streak system

currently working on getting in contact with a clinician for opinions + getting started on xcode.

5
0
316

Followers

Loading…