explaingit

schollz/find3

4,777GoAudience · developerComplexity · 4/5LicenseSetup · hard

TLDR

An indoor positioning system that tracks where a phone or laptop is inside a building by reading WiFi and Bluetooth signal patterns, without any special hardware beyond what is already installed.

Mindmap

mindmap
  root((find3))
    What it does
      Indoor positioning
      Signal fingerprinting
      Location prediction
    Tech Stack
      Go
      Python
      SQLite
    Inputs
      Android app
      ESP8266 ESP32
      Command-line scanner
    Audience
      IoT developers
      Home automation
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Track which room a phone is in inside an office or home without installing any new hardware beacons.

USE CASE 2

Build an asset tracking system using cheap ESP8266 or ESP32 microcontrollers to send signal fingerprints to the server.

USE CASE 3

Create a presence detection system that knows when someone has moved from one area of a building to another.

USE CASE 4

Set up indoor location awareness for a home automation system using existing WiFi access points as landmarks.

Tech stack

GoPythonSQLiteAndroidESP8266ESP32

Getting it running

Difficulty · hard Time to first run · 1day+

Requires running a data storage server and an ML server, plus a training phase of walking through spaces, full setup docs are on the external documentation site.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

FIND3, short for Framework for Internal Navigation and Discovery, is an indoor positioning system that lets you track the location of a phone or laptop inside a building without any special hardware. It works by scanning for wireless signals that are already present, such as WiFi access points and Bluetooth devices, and using the pattern of signal strengths to figure out which room or area a device is in. Think of it as a rough indoor equivalent of GPS, where instead of satellites the system reads the radio environment around you. The way it works is a two-step process. First you walk through the spaces you want to map and record signal fingerprints at each location while labeling them. This teaches the system what the radio landscape looks like in each spot. Then when the system runs in tracking mode, it compares live signal readings against those stored fingerprints and predicts where you are. FIND3 uses ten different machine learning classifiers to make these predictions, which gives it more accuracy than relying on a single method. The system is split into several components. A data storage server and a machine learning server handle the backend processing. A command-line scanning tool, an Android app, and code for small ESP8266 and ESP32 microcontrollers can all send fingerprint data to the server. This means you can set it up with a phone, a laptop, or cheap embedded hardware depending on your needs. This is version 3, a full rewrite of earlier versions. Compared to previous releases it adds support for Bluetooth scanning in addition to WiFi, built-in passive scanning, a smaller database format, and a more permissive license. Data is stored in an SQLite database. The project is released under the MIT license. The README is brief and points to a separate documentation site for setup instructions and usage details.

Copy-paste prompts

Prompt 1
Set up a FIND3 server and walk me through collecting WiFi fingerprints in three rooms so the system can identify which room a device is in.
Prompt 2
Using FIND3 with an Android device, show me how to train the indoor positioning model by recording signal data in labeled locations and then switch to tracking mode.
Prompt 3
How do I configure a FIND3 server to accept fingerprint data from an ESP8266 microcontroller instead of a phone?
Prompt 4
Explain how FIND3 uses multiple machine learning classifiers together to predict indoor location, and how I can check which classifier is most accurate for my space.
Open on GitHub → Explain another repo

← schollz on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.