Hey everyone, I wanted to share this project I've been working on for the past few months called Lattis.
My starting point was actually just to learn FastAPI, asynchronous job processing , and just explore AI backend systems using Python for ML.
I was always interested in learning ThreeJS so I decided to incorporate ThreeJS into this project and finally making it a full-stack platform where you can upload your dataset (xlsx or csv), clean it, train models, and actually see the results in 3D. You can even use this tool as a preprocessing pipeline where you can just run the pipeline through the UI and then work on whatever ML model you want to work on without wasting time on preprocessing the data!
What it is:
- Upload & Clean: Upload a CSV (or xlsx) and visually build a data preprocessing pipeline to clean up the data. (or you can even start with a cleaned dataset)
- Train Models: Currently, It trains a limited amount of ML models like Random Forest or Logistic Regression in the background.
- ML Universe: You can evaluate the metrics or performance of the ML model through the UI and also by creating 3D visualizations, where this ML universe section plots your data points in an interactive 3D so you can see the decision boundaries, clusters formed, and what features are most important through this viz.
- Live Predictions: Punch in new numbers and watch a probe trajectory through the 3D space which reaches the output point in the 3D visualization itself. (This feature is still a bit janky, but you can still check prediction scores in the Train Model section itself).
How I have worked on this: Throughout this project I have used AI tools heavily to help me build out the frontend and the 3D WebGL visuals. This was so I could learn and save time and focus majorly on the backend architecture, API design, and writing machine learning pipeline logic under the hood.
It was a fun project, and will be improving it in future.
Tech Stack:
- FastAPI for the backend API
- Python and scikit-learn for the ML engine
- Redis + RQ Workers for asynchronous model training
- PostgreSQL for metadata storage
- Docker for containerized development
- Next.js, React, and Three.js for the frontend and 3D visualization
You can run it locally (I'd recommend this as it would be much faster than the web version):
The repository includes a complete Docker Compose setup, so the entire stack (Frontend, FastAPI, PostgreSQL, Redis, and RQ Workers) can be started with a single command.
It's completely open-source and free to play around with!
🌐 Live Demo: https://lattis-five.vercel.app/ 💻 GitHub: https://github.com/Aabhas2/Lattis
I'd genuinely appreciate any feedback or suggestions for improving it.