Michael Okuda designed Star Trek’s LCARS screens. In an interview with Adam Savage, he tells how Marina Sirtis found the bridge’s control panels intimidating on the first day of filming. His answer to her: the panels are software-defined, based on your user profile, so the button you hit is always the correct one.
I’ve been exploring that idea with a journal app of my own. It has a crew of AI agents, and when I want something changed, I tell them and they change the software itself.
LCARS voice recognition & UI editing This is the continuation in the series of LCARS app development:
LCARS Elbow LCARS Frame LCARS Text Editor In the last post I built a text editor from scratch for the Captain’s-log use-case. This time I added three things to it: speech recognition, so you can dictate into the log instead of typing it out; proper cursor editing, so you can insert and delete anywhere in the text and not only at the end; and a drag-and-drop layout editor for moving the interface elements around.
LCARS Text editor in Raylib This is the continuation in the series of LCARS app development:
LCARS Elbow LCARS Frame This time I focused on implementing a text editor from scratch in Raylib.
This is for something like the personal log / Captain’s log use-case.
Works better in the full screen version available here
Features Mouse over text area to allow editing text Insert text - only at the end for now… Will work on a gab buffer or something in the future to allow moving the cursor and edit text anywhere.
LCARS frame in Raylib Continuation from last post about designing the LCARS elbow. I continued with making the full frame and add some interactivity to it.
Full screen version available here
Github Code Repo
LCARS Elbow designer in Raylib Just a fun little project for designing LCARS elbows. Click ’d’ key for debug view. Code: https://github.com/saftacatalinmihai/lcars/blob/main/lcars.c
This is a tale of software architecture decision-making in large companies.
The setup As part of my job as a software architect, I had to design a solution which involved the integration between 2 systems: let’s call them A and B. They were part of a new instant payment processing flow that was beeing developed. System B had a legacy integration mechanism that was no longer supported at the architectural level.