Welcome to IRL Journaly! This is my graduate project for solirius reply that uses Ruby on Rails, 3D Gaussian Splatting (ml-sharp) and AI text processing (Groq).
Follow the instructions below to get your local development environment set up.
- Ruby (v3.1.2 or higher recommended)
- PostgreSQL
- Python 3.11+ (for
ml-sharp)
First, clone this repository to your local machine and navigate into the project folder:
cd Desktop
git clone https://github.com/jes4l/irljournaly.git
cd irljournalyIRL Journaly relies on Apple's ml-sharp to convert 2D images into 3D Gaussian Splats. You can check out their official repository here for more details and documentation: Apple ML-Sharp on GitHub.
You need to download it and set up a Python virtual environment to run it locally alongside the Rails app.
-
Clone the
ml-sharprepository somewhere on your computer (e.g., your Desktop):cd Desktop git clone https://github.com/apple/ml-sharp.git cd ml-sharp
-
Create the input and output folders (useful for testing the model manually):
mkdir input_images mkdir output_gaussians
-
Create and activate a Python virtual environment (Make sure you name it
.venv!): If you are usingconda:conda create -n sharp_env python=3.11 conda activate sharp_env # Or using standard python venv: python3 -m venv .venv source .venv/bin/activate
-
Install the dependencies required by
ml-sharp:pip install -e .
You need to tell the Rails application where you downloaded ml-sharp.
- Open
irljournaly/app/jobs/generate_splat_job.rbin your code editor. - Find the following line (around line 26):
ml_sharp_path = "/Users/jesal.vadgama/Desktop/ml-sharp"
- Change this path to the exact absolute path where you cloned
ml-sharpin Step 2.
To use the AI transcription and email features, you need to generate a couple of keys.
- Go to the GroqCloud Console.
- Create an account or log in.
- Click "Create API Key", give it a name, and copy the generated key.
Because standard Gmail passwords don't work for SMTP servers, you need an App Password.
- Go to your Google Account Security Settings.
- Ensure 2-Step Verification is turned on.
- Search for "App Passwords" in the settings search bar (or go to 2-Step Verification -> App Passwords).
- Create a new App Password and name it your website name (e.g.,
jesal.wiki). - Copy the 16-character password generated.
In the root folder of your irljournaly Rails project, create a new file called .env and add the keys you just generated:
# .env
GROQ_API_KEY=your_groq_api_key_here
GMAIL_USERNAME=your_email@gmail.com
GMAIL_APP_PASSWORD=your_16_character_app_password_hereNow that everything is configured, install the Ruby dependencies and set up your database.
-
Install the gems:
bundle install
-
Prepare the database:
bin/rails db:prepare
-
Start the application: IRL Journaly uses a custom host script to boot up the Rails Server, Solid Queue (for background jobs), and Cloudflare Tunnels simultaneously.
./bin/host
(Note: If you are not using Cloudflare Tunnels, you can just start the server normally with
bin/rails sand runbin/jobsin a separate terminal).
Visit http://localhost:3000 (or your tunnel URL) in your browser, and you're good to go!
Here are some of the upcoming features planned to make IRL Journaly even better:
- Daily Journaling Reminders: A notification system (via email or web push) to gently remind you if you haven't logged an entry for the day.
- Interactive Doodle Canvas: A built-in drawing tool that lets you sketch and doodle directly onto your journal pages alongside your text and 3D models.
- Strict Splat Validation: Update the Gaussian Splatting background job to strictly accept only valid image files, preventing accidental processing of unsupported formats.
- Media Support: Expand the journal canvas to accept and seamlessly play all file types, including audio files, videos, and GIFs.
- Custom Audio Override: Add an option to replace the AI-generated Text-to-Speech (TTS) transcript audio with your own uploaded voice memos and recordings.




