Welcome to CalCore, an experimental platform that reimagines how we interact with fat-loss tracking systems by combining custom ISA (Instruction Set Architecture) design with AI-driven input interpretation.
This is not just a calculatorโit's the foundation of an intelligent, extensible, user-friendly metabolic tracking engine designed for daily use.
Most fat-loss apps require painful manual logging of food and exercise. CalCore's vision is to eliminate manual input entirely by enabling users to simply say:
โI weigh 51kg today. I had 3 buns for breakfast, a bowl of noodles for dinner, and danced for 3 hours.โ
- ๐ Automatically interpret the input using an AI language model
- โ๏ธ Translate it into CalCore DSL commands
- ๐งฎ Execute the commands via interpreter
- ๐ Generate a personalized metabolic report, including:
- Daily calorie intake
- Calorie consumption from activities
- Net deficit or surplus
- Visual summary (charts, logs, trends)
Eventually, every user will have access to:
- ๐ A per-day auto-generated metabolic summary
- ๐ Long-term weight tracking and curve plotting
- ๐ง AI-driven natural language interaction โ no manual tracking needed
- DSL-based calorie and movement command parser
- Support for per-user profile (height, weight, age, body fat %)
- BMR/RMR calculation using Harris-Benedict equation
- Calorie tracking (intake + consumption)
- Weight history logging with duplicate filtering
- Weight trend visualization with
matplotlib - Natural language to DSL parser using LLM
- Auto-generated daily metabolic report
- Web or mobile front-end
Example CalCore DSL (.cal) input file:
LOG_WEIGHT 2025-06-25 51.7
EAT 300 carb
EAT 500 protein
MOVE DANCE 120
QUERY BMR
QUERY DEFICIT
Run the interpreter:
python interpreter/interpreter.py examples/sample_day.cal
๐ Plotting Weight Trends Generate weight curve graph from JSON log:
python plot/plot_weight.py
Saves to output/weight_curve.png
๐ง Future: Natural Language Interface The next step is to allow:
โI weigh 52kg today. Ate a chicken salad. Biked 1 hour.โ to be automatically transformed into:
LOG_WEIGHT 2025-06-25 52.0
EAT 350 protein
MOVE BIKE 60
This will be achieved through LLM-powered input parsing and DSL code generation.
๐ฉโ๐ป Author Erin Xu University of Michigan โ ECE Major ๐ GitHub: ErinXU2004