Inspiration
A layout can show that a piece of equipment fits without showing the conditions for moving it again. EXIT FIRST reverses the installation question: before equipment goes in, inspect what would obstruct its later movement. The goal is not another floor-plan chatbot. It is a small, executable model that makes the assumed removal set visible.
The proposed first users are small-equipment vendors and layout reviewers. This is a customer hypothesis, not a claim of interviews, adoption, revenue or measured savings.
What works today
EXIT FIRST is a working offline Python command-line prototype. It accepts a manually supplied or synthetic 2D grid, a fixed rectangular footprint, start and target anchors, permanent obstacle cells and up to six removable objects.
It searches for a route minimizing the number of distinct objects assumed removed before movement, then the number of grid steps. The output contains the route, the removal set and the model assumptions. No-route-in-model, insufficient input and invalid input are distinct outcomes. Missing dimensions never become a free path.
Five runnable demonstrations
The public repository contains demo.py, which computes five synthetic examples at runtime rather than replaying prewritten answers:
| Example | Computed result |
|---|---|
| Open space, 2x2 equipment footprint | Route, zero removals, six steps |
| Removable shelf across that space | Route assuming shelf-A removed first, six steps |
| The shelf becomes a fixed wall | NO_ROUTE_IN_MODEL |
| Equipment dimensions omitted | INSUFFICIENT_INPUT |
| One small box can be avoided by a detour | Zero removals and eight steps, rather than one removal and six steps |
The last example is the core product choice: minimize disruption before distance. In the shelf example, the shelf is assumed removed off-plan before movement; the equipment is not moving through an occupied shelf. The terminal diagram plots anchors, while collision calculations include the full footprint and supplied margin.
How we built it during OFFGRID
The new engine, tests, demonstration and documentation were developed on 22 September 2026. The search state combines (x, y) with an encountered-object bitmask. A lexicographic Dijkstra queue orders removal count first and distance second. Remembering the mask avoids treating repeated contact with the same object as multiple removals.
An independent reference implementation enumerates subsets of removed objects and runs ordinary breadth-first search. It does not import the production geometry or search routines. Both implementations are in the submitted source directory.
The path engine uses only the Python standard library. It makes no LLM, network or cloud calls and requires no keys or third-party package installation. The bounds are 30x30 cells and six removable objects. There is no CAD import, image recognition or hosted web application in this version.
Verification actually performed
The local regression run passed 16 unittest methods. One method compares 200 seeded synthetic layouts against the independent reference implementation. It checks the optimum, route endpoints, continuity, boundaries and collisions. Other tests cover the priority of no-removal detours, repeated object counting, clearance margin, missing data, invalid numbers, overlapping obstacles, duplicate IDs, determinism and input immutability.
A final rerun on 22 September 2026 reported Ran 16 tests in 0.105s and OK. Compilation checks also completed. These are small synthetic correctness checks, not a physical validation, user study or product-wide runtime promise.
Judge reproduction
Public source and instructions: https://github.com/estona815/codex-1-git-2-codex-git/tree/hack47-exit-first-20260922/submissions/exit-first
git clone --branch hack47-exit-first-20260922 --single-branch https://github.com/estona815/codex-1-git-2-codex-git.git exit-first-workspace
cd exit-first-workspace/submissions/exit-first
python3 -m unittest discover -s tests -v
python3 demo.py
Python 3.10+ is required. The README includes a custom JSON layout and CLI command. The submission directory is standalone; other files in this general workspace are unrelated and are not part of the entry. Publication commit: 6bf33df1796cd3ea35b211d1ff2d9ca76ccafaab. No source from other entries was reused as this engine. The repository main branch is unchanged.
Challenges and learning
The difficult boundary is between explaining a model and claiming that a real object can safely move. We therefore preserve the assumptions beside the result, reject contradictory inputs and distinguish missing information from model infeasibility. Independent enumeration made the optimization testable without relying on the same search code to validate itself.
Limitations
Fixed orientation only. No rotation, continuous space, height, mass, ramps, cables, pipes, lifting, deformation or worker-space assessment. Every listed removable object is assumed removable off-plan beforehand; the system does not verify or schedule its removal. The destination is an interior anchor, not proof of extraction through an actual exit.
A found route is not a physical-safety or regulatory finding. No route in this discrete model does not prove that all physical routes are impossible. No real facility, customer, engineer or equipment movement was tested. No hosted demo or video is claimed; the working demonstration is the public reproducible CLI.
What comes next
Validate the model inputs and assumptions with equipment/layout professionals, measure review effort against a manual baseline, and only then consider rotation-aware geometry or validated CAD input. We would not convert the current output into an installation approval or autonomous equipment command.
AI and third-party disclosure
ChatGPT generated and revised the new prototype code, tests, demo and submission text under the participant's direction and submission authorization. Automated local tests were actually executed. No unaided human authorship is claimed. The solver itself is deterministic Python, not an LLM inference. Python standard-library components and GitHub hosting are the other technologies used. No additional commercial API, borrowed dataset or pre-existing application is represented as newly built work.
Log in or sign up for Devpost to join the conversation.