deckarep/DrSbaitsoUi
A front-end for Dr. Sbaitso done in Zig and Raylib.
Welcome to 2024 Dr. Sbaitso. We've been waiting for you.
An unofficial, fan-made modern recreation for retro-computing enthusiasts.
HELLO <YOUR NAME HERE>
, MY NAME IS DOCTOR SBAITSO.
I AM HERE TO HELP YOU.
SAY WHATEVER IS IN YOUR MIND FREELY,
OUR CONVERSATION WILL BE KEPT IN STRICT CONFIDENCE.
MEMORY CONTENTS WILL BE WIPED OFF AFTER YOU LEAVE,
SO, TELL ME ABOUT YOUR PROBLEMS.
A front-end for Dr. Sbaitso created in Zig
and Raylib 5.5
: For modern Desktops as a standalone application.
For historical context on what Dr. Sbaitso is read the wikipedia article.
This will not run without the backend-system which I have not made public yet as it needs more work. This version of Dr. Sbaitso is intended to build just enough of this version that it is nearly indistinguishable from the original however it will never be an exact clone.
Additionally, I will eventually build a plugin system for swapping out the voice synthesis with other systems. And furthermore a plugin system for having a true AI powered backend (such as ChatGPT) to control the good Dr.'s mind.
While I don't antcipate this project to be terribly complex it should offer a good example of how to use true native OS threading in a GUI-based application such as Raylib. All cross-thread communication happens via the use of thread-safe queues. Anything that potentially blocks the Raylib event loop will occur in an auxillary thread. Additionally, should an auxillary thread need to communicate back to the main Raylib thread there is a "main thread" dispatcher to handle this.
.json
definition file of responsesCreative Labs
banner, asks for the user's name and
greets the user with the canonical introduction.@als398$#$#%
, a response category for garbage input is used.
Detecting garbage is not as straightforward as you would think, so this isn't done yet.parity
error mode like the original Dr. Sbaitso app did. Parity mode is what happens when the Dr.
refuses to process your disgusting filth!
Modernized, newer canned responses to make Dr. Sbaitso aware of current times.
He will know about new things like: Tik-Tok, Harry Styles and Texting.
Ability to change retro aesthetics, green monochrome style, monitor border or off completely, etc.
Ability to change background color, font color, font style
Ability to enable/disable CRT shader, or enable/disable CRT monitor border
Ability to compute the md5
or sha1
hash of whatever you type in using the .md5
or .sha1
commands.
Ability say anything using the .say
command.
Ability say something in reverse using the .rev
command.
Ability to read any file word for word using the .read
command.
Memory stack, original Eliza had a memory stack, and it could fallback to memory once and a while.
Ability to swap speech-synthesis backends
Ability to adjust prosody and or tone, volume, pitch, speed of speech engine
Ability to plugin in an AI brain like ChatGPT, or other systems
Various easter-eggs, retro-computing references, etc
The Dr. may become impatient if you don't say anything after awhile. Basically timeout with no interaction.
Ask him to tell you a joke!
uit ....
0.14.0
zig build run
zigup run 0.14.0 build run