• Notice regarding image hosts and attachments. See here.

What are you coding?

Amazing the results that can come out of it.
Made a little diorama builder game with the godot engine with it today, it didnt do too bad getting close to the reference artwork! The second one is built fully in the game, with everything written by Astra, Fable and Opus (limits hit extensively today)
 

Attachments

  • artreference.webp
    artreference.webp
    235 KB · Views: 21
  • Canal quarter_2026-09-16T00-04-12.webp
    Canal quarter_2026-09-16T00-04-12.webp
    117 KB · Views: 19
Need a separate thread for what did Claude code for you vs what could you code if the agents weren't available.

Noticed so much more slop appearing on steam now. All from these new ‘studios’ with no previously released titles, I wonder why.
 
Last edited:
Need a separate thread for what did Claude code for you vs what could you code if the agents weren't available.

Noticed so much more slop appearing on steam now. All from these new ‘studios’ with no previously released titles, I wonder why.
Oh my coding skills are non existent for sure :D
 
Oh my coding skills are non existent for sure :D

That’s fine, I wasn’t having a dig at you I just think it warrants separation is all, but I’m not the forum police lol.

I mean, it’s cool to showcase stuff, but if we wanted to ask about how parts were done and talk more in depth, well, you can see the problem lol.
 
He could ask the AI how its built :p?

I've no issue with people doing this - I haven't written a test in over a year for example and hopefully never will again. It's not serious dev - sorry not intended as a dig @sHo0sH - and shouldn't be treated as such, but sandbox environments for years, for example WYSIWYG editors so why shouldn't people be able to fire a wishlist into gpt and get results out of it?
 
Having no coding experience what so ever, I had an idea to make our job easier for supporting our Command & Control Solution. Typically we can be dealing with 10-15 servers for a single environment (other customers may vary) and scanning log files for issues, errors and requestids can be tedious. Most servers hold 10 different processes and each of those process provide log files. Over the course of 4 months, and using Co-Pilot, I created an application that allows us to multiple log files over multiple servers. I built it in C#.

  1. Login screen
    • To keep ITHC happy
    • Restricts access to authorized users
  2. Customer Profile Section
    • Customer selection dropdown
    • Customer profile persistence
    • Automatic creation of customer-specific configuration files
    • Prevents accidental access to incorrect customer environment
  3. Main Window
    • Customer selection
    • Environment selection
    • Server type selection
    • Log type selection
    • Search scope control
    • Search results display
    • Quick access administration links
  4. Log Search Functionality
    • Multi-server searching
    • Environment-based filtering
    • Search term matching
    • Historical log searching
    • Configurable search scope
    • Supported Server Type
  5. Results Window
    • Results grouped by server
    • Results grouped by log file
    • Multiple match display
    • Expandable result hierarchy
  6. Context Window
    • Displays entries before and after a selected result
    • Context-based troubleshooting
    • Extended event visibility
    • Provides operational context
  7. Log Files Action
    • Open in Notepad++
    • Open containing folder
    • Direct access to physical log locations
  8. Export Logs
    • Multi-file export
    • Evidence collection support
    • Escalation preparation
  9. Customer Configuration
    • Customer management
    • Environment management
    • Server management
    • Log path management
  10. Quick Links
    • Accessing environment specific web facing pages
  11. SSL Cert Viewer
    • Certificate inspection
    • Issuer information
    • Subject information
    • Valid from date
    • Valid to date
    • Expiry monitoring
  12. Service Manager
    • Service status monitoring
    • Service refresh
    • Service start
    • Service stop
    • Service restart
    • Server selection
  13. Audit Window
    • Notepad++ version detection
    • PuTTY version detection
    • WinSCP version detection
    • Multi-server auditing
    • Centralised reporting

There are some things i need to adjust and add but as it stands, I have released v2.0.0 inside our team and current await our department head approval to roll this out with the software we provide to customers. This was only ever intended for use by our support team so customers will not have access to it.
 
That seems to be the thing with most programmers - they have an idea that they want to implement, there's not necessarily an off-the-shelf solution, so they build it themselves. I'm coming at it the other end, I like programming for simply the satisfaction of solving a puzzle. There's nothing I specifically want to code, I just like it instead of doing a word search or a Sudoku. Which means I have to be given something to do, I can't think of things myself. :D
 
I tasked Fable with reviewing my 3D navigation plugin for Unreal, that I wrote years and years ago. It's quite popular and there's a few issues people have asked me to look into that I've not had the time for.

I simply asked Fable 5.1 to review the codebase for bugs. It identified 8. I've spent the afternoon going through them one by one, creating reproduction test cases, eyeballing it all, testing before and after fixes....and they've all been 100% legit functional bugs.

Super impressive. I tend to use Claude mainly just as a typing assistant, just implementing my engineering designs very quickly, it's not often I actually let it loose with open-ended tasks like this.

Code here if anyone's interested : https://github.com/midgen/AeonixNavigation
 
Working on decoding the 5 rotor enhanced patchboard Naval Enigma Machine.. with a cypher that was never decrypted and has no CRIB code..

There' a bit quantum annealing simulation going on too.. this was a previous run.. the current one has been going for almost 20 minutes..

Code:
=====================================================
NAVAL ENIGMA CRYPTANALYSIS PIPELINE (OPTIMIZED)
=====================================================
[*] Ciphertext Length : 72
[*] Stage 1: Coarse Unplugged IC Filtering across Key Space...
[+] Identified 245133 Basins matching IC Threshold. Top 5 selected.
    Elapsed Time: 156.95s

--- Basin #1: Rotors=['VII', 'III', 'VI'], Reflector=C, Coarse Pos=[4, 0, 4] (Raw IC=0.0712) ---
    Calibrated Rings=[0, 0, 0], Positions=[4, 0, 4]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : DABTFTRFNTBBBHHTFFOKZJFBFZFVYOWQNXMNUFAFSEINDFFUKJHFPHXFLNRROZIBDDFNXLFX
    Basin Final Score    : -285.9062
    Recovered Plugboard  : {'I': 'X', 'N': 'V', 'K': 'T', 'L': 'W', 'A': 'Y', 'E': 'J', 'M': 'Q'}

--- Basin #2: Rotors=['VI', 'III', 'II'], Reflector=C, Coarse Pos=[20, 20, 18] (Raw IC=0.0685) ---
    Calibrated Rings=[0, 0, 0], Positions=[20, 20, 18]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : TZBITYUNBBGTLRXTSXUDWFLBOOTCTGYJKTTTTTTTMZYTTTAFRRWIWGIDPJSQOMTEXWPAUCHT
    Basin Final Score    : -283.5241
    Recovered Plugboard  : {'G': 'S', 'I': 'T', 'D': 'K', 'B': 'J', 'Q': 'Z', 'F': 'X', 'E': 'N'}

--- Basin #3: Rotors=['VII', 'VI', 'III'], Reflector=B, Coarse Pos=[10, 2, 10] (Raw IC=0.0681) ---
    Calibrated Rings=[0, 0, 0], Positions=[10, 2, 10]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : XJDECDWSGRQTDDNPDGSEINDERBBMSDZDROCQZDDEFHFKOBRRSGBNDWBMDQIAWRPXWBEPNHZN
    Basin Final Score    : -284.4344
    Recovered Plugboard  : {'L': 'X', 'M': 'P', 'T': 'Z', 'N': 'W', 'O': 'S', 'B': 'Y', 'F': 'Q'}

--- Basin #4: Rotors=['II', 'VII', 'V'], Reflector=C, Coarse Pos=[10, 6, 2] (Raw IC=0.0681) ---
    Calibrated Rings=[0, 0, 0], Positions=[10, 6, 2]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : PQHZPKYTBCIKXOXPPWTLICHTPLJXOJNSTTOWQPZYWAOCJFHKITKWTOBSITKUPRTCHTEITKNR
    Basin Final Score    : -283.9127
    Recovered Plugboard  : {'N': 'U', 'A': 'Z', 'B': 'D', 'L': 'P', 'T': 'W', 'F': 'Y', 'K': 'Q', 'E': 'R'}

--- Basin #5: Rotors=['VIII', 'VI', 'III'], Reflector=B, Coarse Pos=[6, 20, 24] (Raw IC=0.0673) ---
    Calibrated Rings=[0, 0, 0], Positions=[6, 20, 24]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : WHCICNQDCQIQGUZXYWQFNYSCHSIUVILICHTVNSJMPSKCTPCVKCBIGCNCQLWNVKNHIVOJZCHB
    Basin Final Score    : -286.0322
    Recovered Plugboard  : {'C': 'M', 'D': 'R', 'G': 'T', 'E': 'P', 'I': 'X', 'Y': 'Z', 'L': 'V', 'Q': 'W', 'K': 'O', 'J': 'N'}

=====================================================
FINAL OPTIMAL DECRYPTION RESULT
=====================================================
Decrypted Plaintext : TZBITYUNBBGTLRXTSXUDWFLBOOTCTGYJKTTTTTTTMZYTTTAFRRWIWGIDPJSQOMTEXWPAUCHT
Recovered Key (H)   : Rotors=['VI', 'III', 'II'], Reflector=C, Positions=[20, 20, 18], Rings=[0, 0, 0], Stecker={'G': 'S', 'I': 'T', 'D': 'K', 'B': 'J', 'Q': 'Z', 'F': 'X', 'E': 'N'}
Final Distance Score: -283.5241

The cypher has a honey pot - a false minimum that would keep spitting out "ICHTER" in the resulting plain text. The one above has a filtering poisoning occurring causing "TTTTTT" etc..

What makes it worse.. is the Kriegsmarine also use short codes to 'flatten the peak' thus reduce the detectability it shows here where the decryption now scores lower than random noise. The algorithm will physically push the solver away from the correct rotor settings because the true key resides in a statistical valley, not a peak. (The Kriegsmarine actually did this using Kurzsignale—short codebooks that translated common phrases into arbitrary 4-letter groups, completely destroying German language statistics). So no wonder decrypting the naval enigma is such as an *****.

And here's the latest attempt - not bad score..

Code:
=====================================================
NAVAL ENIGMA CRYPTANALYSIS PIPELINE (FULL SEARCH)
=====================================================
[*] Ciphertext Length : 72
[*] Stage 1: Full Spatial Position Search (step=1) with Filtering...
[+] Identified 198362 Valid Basins matching Structural & IC Criteria.
    Top 5 selected. Elapsed Time: 1401.14s

--- Basin #1: Rotors=['V', 'II', 'I'], Reflector=B, Coarse Pos=[22, 12, 21] (Score=-8.7881, IC=0.0493) ---
    Calibrated Rings=[0, 0, 0], Positions=[22, 12, 21]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : ZSSNVADBKMFMLTISDGWRNIAFHVLZBINOSUSZUNDERICWGUNDENBFNDAHAUBODGXFLSIOTODN
    Basin Final Score    : -8.4919
    Recovered Plugboard  : {'L': 'U', 'H': 'O', 'A': 'M', 'C': 'X', 'G': 'J', 'V': 'W'}

--- Basin #2: Rotors=['VII', 'VIII', 'VI'], Reflector=C, Coarse Pos=[4, 6, 24] (Score=-8.8020, IC=0.0556) ---
    Calibrated Rings=[0, 0, 1], Positions=[4, 6, 25]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : UPEDENSBAEYAMSAWDGENDERETMNMTWTHRHDERERMVTXCIDUNDYDVNVLABJBRXPAMUWAKMSQD
    Basin Final Score    : -8.4432
    Recovered Plugboard  : {'I': 'N', 'Y': 'Z', 'B': 'F', 'G': 'X'}

--- Basin #3: Rotors=['I', 'II', 'IV'], Reflector=B, Coarse Pos=[1, 16, 20] (Score=-8.8076, IC=0.0513) ---
    Calibrated Rings=[0, 0, 1], Positions=[1, 16, 21]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : HGKJTGKSAARSUTRWOKINEITTMKLLOTFMLNHFJCINHAEBNBGENPEINEINDWUNDERELUCKTRDG
    Basin Final Score    : -8.3275
    Recovered Plugboard  : {'A': 'B', 'C': 'Z', 'H': 'M', 'O': 'R', 'D': 'F', 'K': 'L'}

--- Basin #4: Rotors=['I', 'III', 'VIII'], Reflector=B, Coarse Pos=[21, 3, 12] (Score=-8.8187, IC=0.0540) ---
    Calibrated Rings=[0, 0, 9], Positions=[21, 3, 21]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : LGGAVZCQLQAKBFCWVEEINEINEINECKQMTTACHETTJLXNEAHNJECWBPSAMUNDEMGZEYWLVAAT
    Basin Final Score    : -8.4429
    Recovered Plugboard  : {'P': 'Y', 'F': 'Q', 'B': 'K', 'T': 'X', 'G': 'J', 'M': 'W'}

--- Basin #5: Rotors=['III', 'I', 'IV'], Reflector=C, Coarse Pos=[24, 8, 0] (Score=-8.8316, IC=0.0520) ---
    Calibrated Rings=[0, 0, 1], Positions=[24, 8, 1]
    Executing Multi-Start Simulated Annealing over S_26...
    Basin Decrypted Text : VSLVTCUNDEPGMLISCHETINDEYIEXMZDEREIGYGGENNNCTMREUYNIYWMZWCNQNMEWHRNDDPPM
    Basin Final Score    : -8.4158
    Recovered Plugboard  : {'M': 'R', 'O': 'Q', 'A': 'S', 'G': 'Y', 'L': 'W', 'J': 'X'}

=====================================================
FINAL OPTIMAL DECRYPTION RESULT
=====================================================
Decrypted Plaintext : HGKJTGKSAARSUTRWOKINEITTMKLLOTFMLNHFJCINHAEBNBGENPEINEINDWUNDERELUCKTRDG
Recovered Key (H)   : Rotors=['I', 'II', 'IV'], Reflector=B, Positions=[1, 16, 21], Rings=[0, 0, 1], Stecker={'A': 'B', 'C': 'Z', 'H': 'M', 'O': 'R', 'D': 'F', 'K': 'L'}
Final Distance Score: -8.3275

However I'm now bumping into the same problem that Bletchley park did - statistical analysis fail due to these defences. The signal is lost in the noise floor (and having only 72 characters means a weak signal).

I'm trying a a crib form but that's unlikely to work if the message doesn't actually contain it..

Trying a different method to reduce the noise floor using existing messages from that day..

Code:
=====================================================
U-534 M4 NAVAL ENIGMA JOINT DEPTH SEARCH
=====================================================
[*] Loaded Stack       : 3 Messages
[*] Total Depth Length : 636 Characters
[*] Search Space       : 23,622,144 Total States
[*] Stage 1: Position Core Search & Noise Floor Filtering...

[*] Progress:   0.1% | Evaluated: 35,152/23,622,144 | Speed: 783 st/s | Elapsed: 00m 44s | ETA: 08h 22m 02s | Basins: 0

This could take a while..

Nah ... just kidding ... AI coding -> parallelise and then use my 12 core Mac mini in a VM then use pypy3...

Code:
=====================================================
PARALLEL U-534 M4 NAVAL ENIGMA DEPTH SEARCH
=====================================================
[*] Active CPU Cores  : 12
[*] Loaded Stack      : 3 Messages (636 total characters)
[*] Search Space      : 11,811,072 States Across 672 Rotor Tasks
[*] Stage 1: Parallel Position Core Search...

[*] Progress:  99.9% | Evaluated: 11,793,496/11,811,072 | Speed: 76,265 st/s | Elapsed: 02m 34s | ETA: 00m 00s

=====================================================
[+] Stage 1 Complete in 02m 35s
[+] Total Basins Identified: 0

And the code is continuing.. so that's 2m34 per CRIB iteration..

Now doing a complex test with multiple rotor positions - this is using the known messages that day to reduce the noise floor and provide some of the settings. This is going to take 3-4 hours even with 12 cores..

Code:
=====================================================
PARALLEL NAVAL ENIGMA (M4) KPA SOLVER
=====================================================
[*] Active CPU Cores  : 12
[*] Rotor Tasks       : 1344
[*] Search Space      : 34,944 States Across Tasks...

[*] Progress:  99.9% | Evaluated: 34,918/34,944 | Speed: 5 st/s | Elapsed: 02h 06m 55s | ETA: 00m 05s 00s

[+] Stage 1 Complete. Found 0 candidate basins.
[-] No candidate basins met the threshold.

Grr...
 
Last edited:
Spent the afternoon evoking my first properly vibe coded project. I wanted a task/design tracking system for the projects I'm working on which I could point Claude at when I wanted to evoke it for a task rather than what I've previously doing with handing it .md files on disc. I wrote a little design document then got it to flesh that out into a more complete design and create a set of milestones to implement it, and got it to implement the milestones one by one, switching over to taking tasks off the new software once it was complete enough. It's all written with node.js which I don't know, so I really have no idea what how the code works.

It's really rather impressive how little guidance it needs and how good an impression of intelligence it achieves in the implementation and the questions it asks. Still has its weird little foibles but I clearly need to be giving Claude more independent tasks for other work I am doing. Opus 5.5 can handle it.
 
So I've gone through a large number of ideas attempting to decipher the Naval Enigma that has never been deciphered:
  • statistical - I basically came to the same problem that Alan Turing did, where there's not enough signal in the noise to detect a clear statistical result.
  • statistical + annealing looking for minimums in the noise - nope. However I did find some interesting mathematics in the encryption maths - these defences are tuned to the German linguistics:
    • Honeypots - there's a mathematical honeypot (false minimum) that attracts - it's recognisable by the phrase "ICHTER" within the output clear text (which is then gibberish).
    • Filter poisoning - there's maths in there to poison filtering which is recognisable by the phrase "TTTTTTTT" within the output clear text (which is then gibberish)
    • Peak smoothing - to hide the signal (ie the message) in the noise, they flatten the peak of the message to make it less detectable by using code books to substitute world that would make it easy to statistically detect and decrypt. So far example, if we imagine the word makes it easier to decipher, an English code book would convert "The Overclockers Forum" to something not so easy like "ZCEG" and so finding the keys to break it is more difficult as the peak is flattened (especially when this is done across all the words that could make it easy).
      I actually used other messages in the same day to average the key space noise floor to see if a signal that was hidden in it now appears just above it.. Nope..
  • statistical KPA - nope.
  • Bombe techniques + Welchman optimisations... nope using other messages + the unknown message to make the message longer and therefore easier to break.. nope..
  • Bombe techniques involving using other messages sent that same day that we have the keys to break to attempt to reduce the time.. this latest spent 6 hour 24 minutes chewing on all 12 cores:
Code:
=====================================================
COMPLETE RING-AWARE NAVAL ENIGMA (M4) SOLVER
=====================================================
[*] HW threads: 12   Rotor jobs: 1344
[*] Stage 1: single full-length (372-char) violation-count pass (diagonal-board aware)

[*] Menu: 372 edges, root=E degree=69
[+] Stage 1 complete in 23313.2s. Top 20 candidates by violation count (lower = better):
   1. violations= 150  rotors=[Beta,I,II,V] reflector=B_Thin q=AAAA
   2. violations= 150  rotors=[Beta,I,III,VII] reflector=B_Thin q=AAAA
   3. violations= 150  rotors=[Beta,I,III,II] reflector=B_Thin q=AAAA
   4. violations= 150  rotors=[Beta,I,III,IV] reflector=B_Thin q=AAAA
   5. violations= 150  rotors=[Beta,I,II,VI] reflector=B_Thin q=AAAA
   6. violations= 150  rotors=[Beta,I,II,VIII] reflector=B_Thin q=AAAA
   7. violations= 150  rotors=[Beta,I,II,III] reflector=B_Thin q=AAAA
   8. violations= 150  rotors=[Beta,I,III,V] reflector=B_Thin q=AAAA
   9. violations= 150  rotors=[Beta,I,II,IV] reflector=B_Thin q=AAAA
  10. violations= 150  rotors=[Beta,I,III,VIII] reflector=B_Thin q=AAAA
  11. violations= 150  rotors=[Beta,I,III,VI] reflector=B_Thin q=AAAA
  12. violations= 150  rotors=[Beta,I,II,VII] reflector=B_Thin q=AAAA

[!] Warning: top candidate's violation count isn't a clear outlier vs the runner-up.
    Proceeding with stage 2 anyway, but treat the result with more suspicion.

[*] Stage 2: recovering (mid, right) ring settings for top candidates...
  candidate  1: rotors=[Beta,I,II,V] best ring(mid,right)=(0,0) score=-1.00%
  candidate  2: rotors=[Beta,I,III,VII] best ring(mid,right)=(0,0) score=-1.00%
  candidate  3: rotors=[Beta,I,III,II] best ring(mid,right)=(0,0) score=-1.00%
  candidate  4: rotors=[Beta,I,III,IV] best ring(mid,right)=(0,0) score=-1.00%
  candidate  5: rotors=[Beta,I,II,VI] best ring(mid,right)=(0,0) score=-1.00%
  candidate  6: rotors=[Beta,I,II,VIII] best ring(mid,right)=(0,0) score=-1.00%
  candidate  7: rotors=[Beta,I,II,III] best ring(mid,right)=(0,0) score=-1.00%
  candidate  8: rotors=[Beta,I,III,V] best ring(mid,right)=(0,0) score=-1.00%
  candidate  9: rotors=[Beta,I,II,IV] best ring(mid,right)=(0,0) score=-1.00%
  candidate 10: rotors=[Beta,I,III,VIII] best ring(mid,right)=(0,0) score=-1.00%
  candidate 11: rotors=[Beta,I,III,VI] best ring(mid,right)=(0,0) score=-1.00%
  candidate 12: rotors=[Beta,I,II,VII] best ring(mid,right)=(0,0) score=-1.00%

[-] No candidate's ring search reached a clear (>90%) match. The crib and
    ciphertext likely don't share a key, or try a longer RING_LONG_LEN.

The Bombe technique uses CRIBs which are worlds that are likely to exit in the encrypted message. In this latest version there's no short cutting the tree navigation.. so we're not going to miss due to any defensive maths.. the violation is where the CRIB letters reappear, bit we don't see any lower violations other than 150 which is a threshold to call it a day on that setting.. If we saw 100 for example it would be an interesting candidate for further analysis..

Nope..

The M4 'naval' enigma has some nasty things... it builds on top of the original army enigma... so it has more rotors out of a set of a larger set that can be swapped in. Some of the rotors can be slipped so that the rotor position is shifted. Also the nazis rewired the rotor mappings.. and the plugboard on the front is larger.. so trying to find the decryption key (used to encrypt) is like trying to find a pin not in a haystack like the army enigma but like the planet or solar system with the naval enigma.
However what's interesting is the maths defences used - although users wouldn't be aware of this, all they'd see is the rotors, plug board, settings of the day, and the code book (used to substitute words), but the maths indicates why they used them.
 
Last edited:
Spent the afternoon evoking my first properly vibe coded project. I wanted a task/design tracking system for the projects I'm working on which I could point Claude at when I wanted to evoke it for a task rather than what I've previously doing with handing it .md files on disc. I wrote a little design document then got it to flesh that out into a more complete design and create a set of milestones to implement it, and got it to implement the milestones one by one, switching over to taking tasks off the new software once it was complete enough. It's all written with node.js which I don't know, so I really have no idea what how the code works.

It's really rather impressive how little guidance it needs and how good an impression of intelligence it achieves in the implementation and the questions it asks. Still has its weird little foibles but I clearly need to be giving Claude more independent tasks for other work I am doing. Opus 5.5 can handle it.

Everything ... should be configuration managed in a repository so Claude can't "accidentally" delete it all :D
 
Last edited:
Everything ... should be configuration managed in a repository so Claude can't "accidentally" delete it all :D

Claude does do some stupid things but it's mostly harmless unless you've set things up weirdly. Everything I code gets version controlled anyway so I'm not too worried.

I do think people connecting these LLMs to their email and bank details are nuts, however.
 
My home coding projects at the moment are based around my 'Homey' home automation controller (like Home Assistant but more expensive and more of a user-friendly product rather than a hobbyist type device). It will basically run apps that control a whole range of devices and then you can link them together using a reasonably powerful if-this-then-that style system.

So I have written one app that controls my solar\battery system, I then tie this in to an existing solar forecast app and it schedules overnight battery charging based on the forecast and auto-discharge during peak rates, varying depending on whether I'm home or not.

I then added a second app which connects to the Axle Energy API and checks for upcoming events and notifies me, this is then tied into the charge\discharge routines for the solar\battery so that it can vary them depending on the upcoming events.

Currently working on a scheduling app that will allow me to setup multi-week schedules that can then be used to control other devices (I intend to use it for my heating), including override modes that could be used to change the schedule when I'm away or on holiday from work etc.

All in Javascript\node.js which I'm not hugely familiar with (I'm a C\C++ programmer in my day job), so a bit of a learning experience as well.
 
I've started on another side project (and gone down the rabbit hole with it as usual). This is a prototype framework for command and control, tactical/mission planning, wargaming, modelling & simulation, situational awareness, and some other bits. It's a very early prototype and - naturally - I started on the fun bit (the renderer) once I had architected the core system.

It's a Windows desktop application and the application framework is C# .NET10 and WinUI3. Everything else (rendering, streaming, geo-processing, entity processing, etc.) is C++ for optimal performance.

The 3D (and 2D) map views are fully and accurately geo-located, support various datums and ellipsoid model conversions, and render on a separate render thread (so as not to block the UI and worker threads. It runs a DirectX12 renderer at present, although the system will be renderer agnostic. I am part way through implementing a first-pass Vulkan renderer but Vulkan is a pain in the ass. The renderer supports map data layering and elevation data layering, and I implemented atmospheric scattering and aerial perspective to model the atmosphere/particulate interaction.

55561858746_d07b460f7e_o.jpg

55562258610_aaededafc4_o.jpg


I inadvertently ended up with a full planet renderer! :cry: I can fly from outer space down to millimetre accuracy (although the view fidelity of course depends on the resolution of the layered map and elevation data available). Map data is streamed in continuously on scalable loader threads with balancing and level-of-detail.

55562019969_e80c8027a0_o.jpg

55562258600_45f6d19628_o.jpg


I have a coarse worldwide data set in use, but higher fidelity data sets for the UK. So I can zoom from space to ~1m per pixel accurate height data (and with various resolution map imagery draped over the terrain, down to 1m street level - limited only by what is freely available in the public domain). It can also happily handle hundreds of thousands of entities displayed on the map, although that is overkill in terms of real world use.

55560838707_6a6ae1936e_o.jpg

55561961603_058a0542bc_o.jpg
 
Last edited:
So I've gone through a large number of ideas attempting to decipher the Naval Enigma that has never been deciphered: ...

So it seems I've hit guard rails on both Claude and Gemini themselves - I think both from an "AI is failing to achieve success" and from it's national security guardrails in terms of modern approaches and techniques. I think since the recent issues of circumventing security, there's more guard rails that have appeared on the public access.

So I think time to call it a day. I would have checked more in terms of specifics around the activities of the particular u-boat, it was in transit to Norway area but it's also been highlighted that the cipher could be the one that was used for training and nobody paid attention to. That could also then make the message quite complex due to not following some of the patterns used in the other u-boat transmissions (each geographic area of u-boats had a different set of rotors, settings and code books - the code books/tables for this cipher were never recovered).
It was a nice mental challenge.
 
Pretty cool. On the optimisation note reminds me of God's Eye View which is broadly similar - a nice idea but the optimisation is horrible.

I have to admit that I haven't really checked out God's Eye View in any depth yet. From the very small bits and pieces I have seen, it appeared to cover a LOT of different systems and data sources, but (as you said) it also appeared to suck big time in terms of performance. I haven't checked the repo yet but I think it is using JavaScript.

My prototype is a little different; it cannot rely on an Internet-delivered data source and needs to be instantly deployable (hence optimised for data sets on local storage first). I am currently trying to keep rendering and data streaming under an 8ms frame budget but this won't last for long! :cry: It is architected to scale across cores/threads and leans heavily on GPU compute too. Early days, just a lot of ideas at the moment and experimenting whilst I look for work!
 
Starting to add the text/glyph rendering now. A vector font is rendered into a high-resolution bitmap mask and a distance field computed. I can then render text/glyphs using a signed distance field texture on the GPU.

55565482753_3850257587_o.jpg


55565783835_8c022ce39a_o.jpg


Performance is great and the technique keeps vector-like edges nice and crisp and text anti-aliased at arbitrary scales.
 
Last edited:
Back
Top Bottom