Desktop device to display availability using fun graphics.
[-gray.svg?style=for-the-badge)](https://github.com/redgreenshift/Flames.st/blob/main/README.md) [-gray.svg?style=for-the-badge)](https://github.com/redgreenshift/firedemo/blob/main/README.md) # Friendly Neighborhood Status Indicator [](https://squeak.org/) [](https://en.wikipedia.org/wiki/Smalltalk) [](LICENSE) An archived Squeak/Smalltalk project that combined real-time procedural flame graphics with a desktop availability display running on a dedicated Raspberry Pi device for open-office environments in a fun and highly visible way. The system ran on a Raspberry Pi and provided a visual indication of whether I was Available or Busy, while also serving as an experiment in generating animated graphics in real-time using Smalltalk. `FlamesRefactor.st` contains the complete implementation written in Smalltalk-80 for the Squeak platform. [Squeak](https://squeak.org/) is a _dialect_ of the [Smalltalk-80 programming language](https://wiki.squeak.org/squeak/373). ## Problem In an open office environment, there was no simple equivalent of a closed office door for signaling "please do not disturb." The goals were: - Provide coworkers with an easy visual indication of availability - Experiment with procedural graphics and animation - Build a graphical application for Raspberry Pi without needing traditional Linux GUI frameworks Squeak provided a platform that solved all three problems simultaneously. ## Project History This project began in March 2020 using Squeak 5.3. Using a Raspberry Pi and touchscreen, I built a desktop availability display around my Smalltalk port of `FireDemo`, capable of showing different animated graphics to indicate whether I was Available or Busy. The project remained under active development for roughly two years. During that time I explored both procedural graphics and UI development in Smalltalk while learning the Raspberry Pi platform. Eventually I figured out how to run my C# applications on Linux, allowing me to return to the faster and more familiar implementation path. The project was subsequently ported back to C# and development continued there. This repository is preserved as an example of exploratory programming in Smalltalk-80 and is **not under active development**. It may require modifications to work with current Squeak versions. ### Alternate Names for this project - NDADD — Neighborhood Desktop Availability Display Device (V1) - NDDADD Mark II — Neighborhood Display Device for Availability & Delightful Distractions (V2) - FNSI — Friendly Neighborhood Status Indicator (V3) - This name stuck after adding a flaming Batman logo. "Friendly Neighborhood..." felt _vaguely_ superhero-themed, so I stopped trying to rename the project every release. - Other ideas: - ASID — Availability Status Indicator and Deflector - FANSI DAD — Friendly Amusing Neighborhood Status Indicator Display for Availability and Deflection - PASIDINA — Personal Availability Status Information Desktop Indicator in the Neighborhood Assistant - SIPI CUP: Status Indicator for Presence Information ...(it) can update people? ...and Conversational Obstruction Plan - MAGPAI — My Automated Great Personal Availability Indicator - ABSURD — Automated Busy Status and Ultra Randomization Deflector - NORAD — Neighborhood Obstructor of Randomization and Automated Deflection ## Related Projects ### Predecessor & Successor Project [`FireDemo`](https://github.com/redgreenshift/firedemo) occupies the unusual position of being both the direct predecessor and the direct successor of this project. `Friendly Neighborhood Status Indicator` began as a specialized application built on top of the original `FireDemo` flame effects. Later, the lessons learned here were folded back into `FireDemo`, where the graphics engine was expanded with additional effects such as lightning, plasma, and more. See the [`FireDemo` Project History](https://github.com/redgreenshift/FireDemo/blob/main/README.md#funny-circular-lineage) for the full explanation of this somewhat circular lineage. <!-- `FireDemo` is **both** the direct precursor **and** the direct successor to `Friendly Neighborhood Status Indicator`. See the [`FireDemo` Project History](https://github.com/redgreenshift/FireDemo/blob/main/README.md#funny-circular-lineage) for full details of the looping lineage. It expanded this initial implementation into more lighting-effects including lightning, and plasma. -->