friendly-neighborhood-status-indicator

Description

Desktop device to display availability using fun graphics.

Details

Source
GitHub
License
MIT
Created
Sept. 26, 2026
Updated
Oct. 5, 2026

Categories

UI / Graphics

README excerpt

[![Previous: Flames.st](https://img.shields.io/badge/←_PREV_(Flames.st)-gray.svg?style=for-the-badge)](https://github.com/redgreenshift/Flames.st/blob/main/README.md)
[![Next: FireDemo](https://img.shields.io/badge/←_PREV_&_NEXT_→_(FireDemo)-gray.svg?style=for-the-badge)](https://github.com/redgreenshift/firedemo/blob/main/README.md)

# Friendly Neighborhood Status Indicator

[![Platform: Squeak](https://img.shields.io/badge/Squeak-F8F8F8?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iODAwIiB3aWR0aD0iMTIwMCIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSItMjU2NS41OTQ3NSAtMjkxNy4yMjYyNSAyMjIzNS4xNTQ1IDE3NTAzLjM1NzUiPjxwYXRoIGQ9Ik0xMTUwMS4yMTIgNjQ1Ni42MmMuMjg0IDY2My4yNjgtNDMxLjMzIDEyMDEuMTQtOTYzLjg1NCAxMjAxLjE0LTUzMi41MjIgMC05NjQuMTM3LTUzNy44NzItOTYzLjg1My0xMjAxLjE0LS4yODQtNjYzLjI2NiA0MzEuMzMxLTEyMDEuMTM4IDk2My44NTMtMTIwMS4xMzggNTMyLjUyNCAwIDk2NC4xMzggNTM3Ljg3MiA5NjMuODU0IDEyMDEuMTM5eiIvPjxwYXRoIGQ9Ik0xMTIzNC42MjUgNjMzNy4zODdjMCAzMTkuMjQyLTE1Mi44NDEgNTc4LjA0LTM0MS4zOCA1NzguMDQtMTg4LjUzNSAwLTM0MS4zNzYtMjU4Ljc5OC0zNDEuMzc2LTU3OC4wNCAwLTMxOS4yNDEgMTUyLjg0MS01NzguMDQgMzQxLjM3Ni01NzguMDQgMTg4LjUzOSAwIDM0MS4zOCAyNTguNzk5IDM0MS4zOCA1NzguMDR6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTc1NjUuMTI5IDYyNzguOTA0YzAgNjYzLjAxOC00MzEuNTMyIDEyMDAuNS05NjMuODUzIDEyMDAuNS01MzIuMzIzIDAtOTYzLjg1NS01MzcuNDgyLTk2My44NTUtMTIwMC41IDAtNjYzLjAyIDQzMS41MzItMTIwMC41MDIgOTYzLjg1NS0xMjAwLjUwMiA1MzIuMzIgMCA5NjMuODUzIDUzNy40ODMgOTYzLjg1MyAxMjAwLjUwMnoiLz48cGF0aCBkPSJNNzI5OC41NDIgNjE2MC4xMjNjMCAzMTguOTk2LTE1Mi44NCA1NzcuNTktMzQxLjM3OSA1NzcuNTktMTg4LjUzNiAwLTM0MS4zNzctMjU4LjU5NC0zNDEuMzc3LTU3Ny41OSAwLTMxOC45OTUgMTUyLjg0LTU3Ny41OSAzNDEuMzc3LTU3Ny41OSAxODguNTM5IDAgMzQxLjM4IDI1OC41OTUgMzQxLjM4IDU3Ny41OXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNTg5MC40MDQgMzczMS4wMTJDMjkwMi4zNjQtMTk1OC43OCA2MTIuNTEtODMyLjU3MSAyODA3LjU0NiA2NTc1LjQwMm04MzA2LjQ4OS0yOTA0LjIzNGMyNzcwLjc2NC01MzU2LjY0IDUzNzYuNzI1LTQ5ODYuMTA4IDMwODIuODU4IDI4NDUuMjk2IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMTUwIi8+PHBhdGggZD0iTTk4MTYuNTE1IDkzNTUuNDEzYzAgNDk5LjI3Mi01MzcuNDg0IDkwNC4wMS0xMjAwLjUwMiA5MDQuMDEtNjYzLjAxOCAwLTEyMDAuNTAxLTQwNC43MzgtMTIwMC41MDEtOTA0LjAxIDAtNDk5LjI3IDUzNy40ODMtOTA0LjAxIDEyMDAuNS05MDQuMDEgNjYzLjAyIDAgMTIwMC41MDMgNDA0Ljc0IDEyMDAuNTAzIDkwNC4wMXoiLz48cGF0aCBkPSJNNjg5Ny43NzQgODgyNi43OTRDNDg3OS44IDgyOTQuOTY1IDI4MjMuNTg3IDgyODAuNzk0IDIzIDkxODMuMTM3bTY3NTYuOSAyMzQuODQxYy0yNDg1LjQ2NC0xNTYuNjkzLTQyMDguNTk2LTE5OS4zMjUtNjI4Mi42ODMgMTQyMy41NTRtNjI4Mi42ODMtNDczLjMwOWMtMjE0My4wMTctMjg4LjE3OC0yOTY1LjM0OC05OS44NDQtNDI2Ny45NDUgMTA2OC4xMm03Njk0LjQ1MS0yNDMwLjkyNGMyODk2LjExMi03NDkuMzc0IDUwMjkuNTkyLTIwNi43MzMgNjg3NS42NzkgMzU2LjM0Mm0tNjc1Ni44OTkgMjM1Ljc0OGMyNjU2LjA1LTE5OS4zMjUgNDIzMy4wNTgtMTI4LjQ4IDYyODIuNjgzIDE0MjIuNjQ4bS02MjgyLjY4My00NzUuMTIzYzIwMTkuMTA0LTI1My41NjQgMjg4NS4wNjQtMTc2LjIxMiA0MjY3Ljk0NSAxMDY4LjExOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjE1MCIvPjwvc3ZnPg==)](https://squeak.org/)
[![Language: Smalltalk-80](https://img.shields.io/badge/Smalltalk--80-B8DAFD)](https://en.wikipedia.org/wiki/Smalltalk)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](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.
-->

← Back to results