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

Scout

@Scout

Joined June 2nd, 2026

  • 4Devlogs
  • 5Projects
  • 1Ships
  • 4Votes
Hey everyone, Im Scout. I am a PC tech enthusiast, Raspberry Pi Lover, and Website designer.
Open comments for this post
Reposted by @Scout

20m logged

D-LOG #2
(Based on work from the past month, was on vaca sorry for taking forever)


Build: ATLASV3.3(L)


Biggest changes:


Full luminance curve pre-pass
Instead of just thresholding each frame’s brightness individually, the script now buckets every image into 5-minute slots, builds a brightness curve across the entire dataset, and derives actual sunrise/sunset intervals from where the curve crosses DAY_THRESHOLD (20.0). There’s also a MIN_DAY_DURATION floor (1 hour) so a passing cloud or a lens flare can’t fake a fake “day.” Anything outside a real daylight window gets logged as NIGHT_CURVE_SKIPPED and skipped before the VLM even sees it saves a ton of compute on a big folder.


Results get merged:


Shadow angle -> circular mean across models, flagged DISAGREE if spread > 45°
Shadow length / density / rock texture / volcanic features -> majority vote
Plant types / rock colors -> unioned into one combined list


Latitude derivation


Previous versions only estimated longitude. v3.3 adds a day-length-based latitude calc, it finds the longest daylight interval in the dataset, converts that duration into a sunset hour angle, and solves for latitude using solar declination for the day of year.


Search area validation


Both derived coordinates now get checked against a Haversine distance from a defined SEARCH_CENTER / SEARCH_RADIUS_KM, with a clean ✅ / ❌ status line and a fallback bounding box printed if the point lands outside the circle.


Habitat classifier got smarter


HABITAT_RULES is now a proper rule list -> each biome match is a lambda checking keyword hits across plant types, rock color, and vegetation density instead of a flat tally. Sonoran/Chihuahuan/Mojave/Colorado Plateau/Cascades/Sierra-Great Basin/High Desert/Mixed Conifer are all still in there, just with tighter matching logic.


Parser resilience


parse_field() handles models that randomly bold their output (SHADOW_ANGLE: etc.) and normalizes stray ° symbols and none/n/a/null variants down to “unknown” so downstream math doesn’t choke on garbage strings.


Known issue, flagging this for myself before I forget


The longitude calc in main() is currently hardcoded, not pulling from the actual solar_noon_avg computed earlier in the run:
day_of_year = 138 # May 18th
eot = 3.65 # Verified EoT for Day 1
noon_secs = 84495 # Verified 23:28:15 UTC trajectory


That’s leftover from debugging against the sample dataset, it means every run right now spits out the same longitude regardless of what images you actually feed it, which is obviously not the goal. Latitude is properly dynamic (built off intervals from the real daylight curve), longitude isn’t yet. Top priority fix for the next patch, need to swap those three constants for the real per-dataset solar_noon_avg / Julian day / EoT calc instead of the frozen debug values.


Next up


Wire the real solar_noon_avg (already computed in compute_solar_noon()) into the longitude block instead of the hardcoded Day 1 constants
Maybe expand HABITAT_RULES matching beyond simple keyword hits, closer to weighted scoring


Look into whether internvl2_5-4b is pulling its weight in the ensemble or just adding runtime for marginal disagreement value

0
1
7
Open comments for this post

20m logged

D-LOG #2
(Based on work from the past month, was on vaca sorry for taking forever)


Build: ATLASV3.3(L)


Biggest changes:


Full luminance curve pre-pass
Instead of just thresholding each frame’s brightness individually, the script now buckets every image into 5-minute slots, builds a brightness curve across the entire dataset, and derives actual sunrise/sunset intervals from where the curve crosses DAY_THRESHOLD (20.0). There’s also a MIN_DAY_DURATION floor (1 hour) so a passing cloud or a lens flare can’t fake a fake “day.” Anything outside a real daylight window gets logged as NIGHT_CURVE_SKIPPED and skipped before the VLM even sees it saves a ton of compute on a big folder.


Results get merged:


Shadow angle -> circular mean across models, flagged DISAGREE if spread > 45°
Shadow length / density / rock texture / volcanic features -> majority vote
Plant types / rock colors -> unioned into one combined list


Latitude derivation


Previous versions only estimated longitude. v3.3 adds a day-length-based latitude calc, it finds the longest daylight interval in the dataset, converts that duration into a sunset hour angle, and solves for latitude using solar declination for the day of year.


Search area validation


Both derived coordinates now get checked against a Haversine distance from a defined SEARCH_CENTER / SEARCH_RADIUS_KM, with a clean ✅ / ❌ status line and a fallback bounding box printed if the point lands outside the circle.


Habitat classifier got smarter


HABITAT_RULES is now a proper rule list -> each biome match is a lambda checking keyword hits across plant types, rock color, and vegetation density instead of a flat tally. Sonoran/Chihuahuan/Mojave/Colorado Plateau/Cascades/Sierra-Great Basin/High Desert/Mixed Conifer are all still in there, just with tighter matching logic.


Parser resilience


parse_field() handles models that randomly bold their output (SHADOW_ANGLE: etc.) and normalizes stray ° symbols and none/n/a/null variants down to “unknown” so downstream math doesn’t choke on garbage strings.


Known issue, flagging this for myself before I forget


The longitude calc in main() is currently hardcoded, not pulling from the actual solar_noon_avg computed earlier in the run:
day_of_year = 138 # May 18th
eot = 3.65 # Verified EoT for Day 1
noon_secs = 84495 # Verified 23:28:15 UTC trajectory


That’s leftover from debugging against the sample dataset, it means every run right now spits out the same longitude regardless of what images you actually feed it, which is obviously not the goal. Latitude is properly dynamic (built off intervals from the real daylight curve), longitude isn’t yet. Top priority fix for the next patch, need to swap those three constants for the real per-dataset solar_noon_avg / Julian day / EoT calc instead of the frozen debug values.


Next up


Wire the real solar_noon_avg (already computed in compute_solar_noon()) into the longitude block instead of the hardcoded Day 1 constants
Maybe expand HABITAT_RULES matching beyond simple keyword hits, closer to weighted scoring


Look into whether internvl2_5-4b is pulling its weight in the ensemble or just adding runtime for marginal disagreement value

0
1
7
Open comments for this post

23m 46s logged

Devlog - 01
Started work on KAKUSEIOS (KaOS), a custom themed WebOS built in vanilla HTML/CSS/JS.

First 20 sum minutes = Fleshing out HTML/CSS skeleton and JS properties.

The concept: instead of a standard landing page, the OS boots through a fake Arch Linux TTY sequence. You log in as USER, run ‘exec kakusei’, watch a gold progress bar fill, then the desktop fades in.
Built out the full foundation today:

Boot sequence: a typewriter terminal effect with configurable line speed and delay per line. Gold loading bar with named stages (Initializing, Loading window manager, Mounting desktop, etc). Transitions via CSS opacity fade into the OS layer.

Desktop is a deep navy/black palette with gold accents throughout. Glassmorphism windows with gold borders and glow. Fixed topbar with OS name, Japanese subtitle (覚醒), and live clock. Kanji character icon placeholders for apps.

Simple WIP Window manager- draggable windows from header handle, open/close system, z-index stacking so last-clicked window always sits on top. Topbar always stays above everything. createWindow() helper lets you spin up new apps without rewriting.
(Working out bugs)

Currently working on: About window: first functional app, OS origin, etc…

Next up: building out functional apps starting with an in-OS terminal.

0
0
54
Ship Changes requested

This is ATLAS, a Image search and geo recognition tool that uses VLMs (Visual Language Models) to scan a string of images, guess where they were taken, and supply estimated coordinates.
(As said in my Dev log the coordinates may be off wildly, this is a known issue being worked on currently)

The code is being worked on every week and major updates are to come, V3.3 is not the final model. I plan a V4 very soon...

  • 1 devlog
  • 1h
Try project → See source code →
Open comments for this post
Reposted by @Scout

1h 21m 13s logged

Devlog - 01

A few weeks ago I almost helped find $20K buried somewhere in the American southwest. ATLAS is the image recognition pipeline I built to try.

It Works by taking a feed of images (50+ for best results, I used 625 for my tests) sending them through Various Local VLMs for inference. (Via LM Studio)

I’ve been working on this project for weeks, decided to share it with everyone here.

Currently I am working on Version 3.3.
Previous models of ATLAS only utilized one VLM for inference, I had noticed the outputs to be significantly off course. So In V3.3 I designed it to use an ensemble system.

Instead of using one model, it cross checks data between 2 or more. Then determines the winning output from all models.

This way if one model hallucinates and the others don’t, Your data wont be skewed… Though I am still working out some bugs, as V3.3 has been off course by a MARGIN.

It runs a user defined boundary. So instead of having to manually check coordinates yourself you’d know if it was incorrect instantly.

Though V3.3 doesn’t really respect the boundary, so I need to get that fixed.

-(My latest test ran 4,355Km off target. this is a known geometry bug in the coordinate derivation, not the inference pipeline itself)

The speed at which ATLAS Processes images depends entirely on your hardware and number/type of model(s) you are using.

Example:

(Using qwen 2.5 7B (Q4_K_M), and Moondream 2 (Q4)

  • 600 Frames

Estimated Times

  • Best tier GPU: RTX 4090, Dual RTX 3090s, Mac Studio M3 Ultra, etc…

  • Runtime:
    Qwen 2.5 7B ~0.25 seconds
    Moondream2 ~0.08 seconds
    Total: 3 to 4 minutes

  • High Tier GPU: RTX 4080, RTX 4070 Ti Super, M3 Max, etc…

  • Runtime
    Qwen 2.5 7B ~0.60 seconds
    Moondream2 ~0.20 seconds
    Total: 6 to 8 minutes

  • Mid tier GPU: RTX 4060 Ti (16GB), RTX 4070, M3 Pro, etc…

  • Runtime
    Qwen 2.5 7B ~2.00 seconds
    Moondream2 ~0.50 seconds
    Total: 22 to 30 minutes

  • Low tier GPU: RTX 3050, GTX 1660 Super, Base M1/M2 Mac, etc…

  • Runtime:
    Qwen 2.5 7B ~5.00 seconds
    Moondream2 ~1.20 seconds
    Total: 1 to 1.5 hours

  • CPU Only: Core i9 / Ryzen 9 (32GB DDR5 RAM), etc…

  • Runtime:
    Qwen 2.5 7B ~35.00 seconds
    Moondream2 ~7.00 seconds
    Total: 6 to 8 hours

(tested on RX 9070 XT 16GB)

Updated features:
Global Luminance Profiling: maps brightness across the entire dataset to skip night frames before inference, saves ~10% compute

Triple-Model Consensus Pass: runs 3 VLMs in parallel and cross-checks outputs to filter hallucinations

Orbital Mechanics Longitude Tracking: derives longitude from solar noon timing in image timestamps

Haversine Validator: checks derived coordinates against the search boundary using spherical earth math

Currently working on fixing shadow angle calculation (Keeps returning unknown for certain vectors), and Search area constraint bias.
(Image shows V3.3 running with a Tri-Qwen ensemble)

3
3
1121
Open comments for this post

1h 21m 13s logged

Devlog - 01

A few weeks ago I almost helped find $20K buried somewhere in the American southwest. ATLAS is the image recognition pipeline I built to try.

It Works by taking a feed of images (50+ for best results, I used 625 for my tests) sending them through Various Local VLMs for inference. (Via LM Studio)

I’ve been working on this project for weeks, decided to share it with everyone here.

Currently I am working on Version 3.3.
Previous models of ATLAS only utilized one VLM for inference, I had noticed the outputs to be significantly off course. So In V3.3 I designed it to use an ensemble system.

Instead of using one model, it cross checks data between 2 or more. Then determines the winning output from all models.

This way if one model hallucinates and the others don’t, Your data wont be skewed… Though I am still working out some bugs, as V3.3 has been off course by a MARGIN.

It runs a user defined boundary. So instead of having to manually check coordinates yourself you’d know if it was incorrect instantly.

Though V3.3 doesn’t really respect the boundary, so I need to get that fixed.

-(My latest test ran 4,355Km off target. this is a known geometry bug in the coordinate derivation, not the inference pipeline itself)

The speed at which ATLAS Processes images depends entirely on your hardware and number/type of model(s) you are using.

Example:

(Using qwen 2.5 7B (Q4_K_M), and Moondream 2 (Q4)

  • 600 Frames

Estimated Times

  • Best tier GPU: RTX 4090, Dual RTX 3090s, Mac Studio M3 Ultra, etc…

  • Runtime:
    Qwen 2.5 7B ~0.25 seconds
    Moondream2 ~0.08 seconds
    Total: 3 to 4 minutes

  • High Tier GPU: RTX 4080, RTX 4070 Ti Super, M3 Max, etc…

  • Runtime
    Qwen 2.5 7B ~0.60 seconds
    Moondream2 ~0.20 seconds
    Total: 6 to 8 minutes

  • Mid tier GPU: RTX 4060 Ti (16GB), RTX 4070, M3 Pro, etc…

  • Runtime
    Qwen 2.5 7B ~2.00 seconds
    Moondream2 ~0.50 seconds
    Total: 22 to 30 minutes

  • Low tier GPU: RTX 3050, GTX 1660 Super, Base M1/M2 Mac, etc…

  • Runtime:
    Qwen 2.5 7B ~5.00 seconds
    Moondream2 ~1.20 seconds
    Total: 1 to 1.5 hours

  • CPU Only: Core i9 / Ryzen 9 (32GB DDR5 RAM), etc…

  • Runtime:
    Qwen 2.5 7B ~35.00 seconds
    Moondream2 ~7.00 seconds
    Total: 6 to 8 hours

(tested on RX 9070 XT 16GB)

Updated features:
Global Luminance Profiling: maps brightness across the entire dataset to skip night frames before inference, saves ~10% compute

Triple-Model Consensus Pass: runs 3 VLMs in parallel and cross-checks outputs to filter hallucinations

Orbital Mechanics Longitude Tracking: derives longitude from solar noon timing in image timestamps

Haversine Validator: checks derived coordinates against the search boundary using spherical earth math

Currently working on fixing shadow angle calculation (Keeps returning unknown for certain vectors), and Search area constraint bias.
(Image shows V3.3 running with a Tri-Qwen ensemble)

3
3
1121

Followers

Loading…