51 karma · joined November 7, 2021
Some context on why this exists and the decisions behind v1.0:
The Problem I'm a photographer, and my workflow was broken. I'd come back from a shoot with hundreds of RAW files and face two anxiety-inducing tasks: culling the duds and naming the keepers. I'm folder-first—file names matter because they follow the image everywhere: Affinity, Da Vinci, Apple ‘Motion’ layer stacks, client handoffs. A properly named file is searchable on any system without special software.
I wanted to point the computer at a source folder, point it at a destination, and have it handle everything in between. Locally. No internet. No uploading terabytes to someone else's servers.
The Journey [ Screenshots and more at https://oaklens.art/dev ] This started as a ~300 line CLI script on an M4 MacBook Air. After a few rounds of deep research (shoutout to Gemini for helping me break through some implementation walls), I had something that actually worked for my daily workflow. But I wanted to keep the low overhead of the terminal while making it more accessible. Enter the TUI—with two aesthetic modes: "Warez" (demoscene callbacks for those who appreciate that energy) and "Pro Mode" (clean HUD + stats for studio environments). F12 toggles between them. Fully open source (MIT).
Technical Decisions:
1. No Prompt Boxes: I didn't want to "chat with my photos." FIXXER treats the VLM as a headless reasoning engine. You press Auto, it applies logic—naming, culling, grouping—without you ever typing a prompt.
2. Native RAW Support: Most AI photo tools assume JPEGs. FIXXER works directly with RAW files (.RW2, .CR3, .NEF, .ARW, 40+ formats) via rawpy. We extract embedded thumbnails when available or do half-size demosaic in memory—no temp files, no export step. Straight from camera to AI pipeline.
3. Why Qwen2.5-VL: We tested Bakllava, Llava, Phi-3-Vision. Phi-3 failed hard on structured JSON outputs. Qwen was the only model consistent enough for production—good spatial awareness, reliable JSON, runs well on 24GB unified memory.
4. Graceful Degradation: Local-first means dependencies can fail. Semantic burst detection uses CLIP embeddings, falls back to imagehash. Quality culling uses BRISQUE (essential for not flagging bokeh as blur), falls back to Laplacian variance.
5. Hash Verification: Every file move is SHA256 verified with JSON sidecar audit trails. This eliminates the blind trust problem—you get cryptographic proof that your files arrived intact.
Flexible Workflows FIXXER is modular. The full Auto workflow chains burst detection → quality culling → AI naming → archive, but each feature works independently. Just want to group bursts? Run that alone. Just want quality tiers? Cull button. For the simplest use case, there's Easy Archive: point it at a folder of images, and it AI-names everything and sorts them into keyword-based folders. That's it.
AI Critique Mode: Beyond organization, FIXXER can analyze any image (RAWs included) and return structured creative feedback: composition score, lighting critique, color analysis, and actionable suggestions. It outputs JSON you can save alongside your files. This is v1—future versions will offer critique tiers based on depth and processing time. Configuration & Tuning The default thresholds (burst sensitivity, culling strictness) are tuned for my workflow, but everything is exposed in ~/.fixxer.conf. If the burst detection is too aggressive or the culling too lenient for your specific camera/lens combo, you can tweak the engine parameters directly to dial it in.
What's Next (v2) Dry run mode currently shows you exactly what will happen before any bits move. v2 will let you edit individual AI names in the preview before executing.
After a week of observing what worked/didn't work for me I enjoy my phone more and get the notifications I want when I want.
Before setting up the focus groups I definitely was receiving too many useless notifications damn near every hour.
The "free" movie selection is also really good (no ad's in premium). It's curated (read not endless fluff) and I spend less time thumbing through the damn menus (looking at you Netflix) and just watching stuff.
As an example YT Movies>Free just released James Cameron's Doc: Deepsea Challenge right after the Titan implosion. This type of realtime, zeitgeist curation happens all the time in their "free movie section" If you are starting from 0 in the submersible space great way to break the ice and start to grasp what that type of exploration entails. https://www.youtube.com/watch?v=ZZD_nbS1_II
Been with them since the Google Play Music days, just a happy customer.
After the physical weight loss I still had to work through the mental issues with losing what felt like half of me (positive but still strange to witness in the mirror), becoming visible in spaces (think socially) I was typically invisible (despite being so large), and transitioning out of a year long weightloss mode to a life long sustainable "maintenance mode" to keep the weight at bay but not go crazy.
While the weight has fluctuated a bit since the intial weightloss over 10 years, the bulk 45ish lbs has not come back. One key are for me personally was wrapping my head around all the stuff surrounding my unhealthy habits, many not tied to food and working to shore up those areas in my life as well. Mind. Body. Soul.
Just wanted to throw that into the ring. Everyone has their own journey and the steps are really basic from a nutrition stand point. It can be a fascinating oppurtunity to learn about oneself through focused observation.
Also I don't like the NeevaAI pricing break down style. The annual plan which cost more upfront is broken down into a monthly amount instead of the what I will pay today at checkout price. It brings back negative memories of signing up for Adobe Cloud.
Although fastmail is quite a developed thing you can see where kagi is heading the longer they stay in the game.
It's up there in value with Youtube premium for me...I will pay a reasonable price for a life without ads given the option for a service I depend on.
Just me 02 cents.
Also VR Chat (also an app) has been awesome for connecting and talking with new people. Environments from orbiting high above the earth in space to a rooftop restauraunt in Paris make it fun to spend a few hours with new people.
As other have said, inside other VR application there is a lot of "neat" "potential" but hampered execution due to software, hardware, or both. I always tell people we've made some gigantic leaps but we're still in the early stages.
I've been using Bitwarden for years but integrated 2FA support from Apple has moved me over. I really despised having to switch between apps (I don't use sms 2fa when I can).
From a physical and mental stand point, the work can be quite a lot. Amazon doesn't take it easy on you. However, after gaining some conditioning I enjoy being paid to spend time outside. It's confirmed that I need to take more serious look into fields that let me work outside.
To sustainably preform at my optimum, nutrition and recovery are essential. During "peak" (highest volume of pkgs moved) my watch will record anywhere from 10 - 14 mi a day of walking with over a +1,000 calories burned.
Navigating streets with tourist, delivering on hills with significant grades, abnormal addresses and entrances (it's never quite as straightforward as one might think), numerous not up to code unique hazards, and what can be daily route changes - [one day delivering to skyscrapers in the Financial, the next to apartments in the Tenderloin) makes for a stimulating week of work.
It's not for everyone but can be rewarding while allowing a more focused split between work/life rather than where you're never really "off" from work.
When it decided to make its manuever (on coming traffic briefly stopped to allow the car to drive around the double parked vehicle) the car made erratic micro turns and short hard braking action (pushing the nose of the car down) once it entered the (stopped) on coming traffic lane. The occupants were definitely thrashed around a bit.
The attempt was not pretty and definitely not even close to human level proficeny.
A typical manuever one has to make these days in the Bay with street parking eliminated in many busy restaurant / cafe corridors.
Personally not a huge fan of the Zeiss wipes, seems to be too much solution on them.
The Target Brand...yes Target Brand wipes are great. Just enough solution to clean and not be abrasive and also evaporate without wet streaks on the lens. Also extremely cheap (the bottle version of the solution is nice as well.)
*Also a premium subscriber. Youtube in many ways is a necessary part of this version of the internet experience and I detest having to sit through all the ads...if I have to pay $10/month seems fair to me. Just my 02 cents.