-->

Homelessness Resources

The Free Life Planner is an AI-powered "GPS for your life" designed to solve a deadly problem: homeless individuals facing critical information gaps about available resources while struggling with hunger, exposure to the elements, and exhaustion. The system works like a sophisticated survival assistant - users will be able to text, call or browse from any phone to describe their situation, and it will generate detailed, step-by-step plans with backup options: "Go to this pantry at this address. If it's closed, drive 3 blocks to this kitchen. Sleep at this shelter tonight." Built on AI planning algorithms, it knows of many local resources, their hours and requirements, adapts when plans fail, and learns from user feedback to continuously improve. The developer's own experience with homelessness inspired this illustrative concept of how systematic AI assistance could transform difficult struggles into guided pathways toward stability. As free software that costs nearly nothing to replicate, it represents a virtual safety net that could be deployed globally to assist thousands of lives by getting safety-critical information to those who need it most - because every day of delay means people suffer needlessly when many resources to help them already exist, they just need a helping hand to more fully access them.

Update 2025-08-22: With Claude's help, I've implemented a temporally contingent planner for the homelessness domain. Still lots of work to go, but I was motivated by a Facebook post by Invisible People discussing how much trouble the homeless community is currently facing.

The system is actually computing contingent plans, similar to this:

14.5: check-shower-facility [1.0]
<BRANCH: (service-available shower-facility) = true>
  15.5: (travel-to day-center) [12.0]
  27.5: (use-service shower-facility day-center) [5.0]
  32.5: call-shelter-service [2.0]
  <BRANCH: (service-open shelter-service) = true>
    34.5: (travel-to downtown-shelter) [15.0]
    ...
  <BRANCH: (service-open shelter-service) = false>
    34.5: call-food-service [2.0]
    36.5: find-alternative-shelter [60.0]
    ...
<BRANCH: (service-available shower-facility) = false>
  15.5: call-food-service [2.0]
  17.5: (travel-to food-bank) [20.0]
  ...

With Claude's help, I rearchitected the planner to perform temporally contingent plan tree extraction, and make it more domain independent. However, I am not sure exactly how or whether the planning algorithms are working, therefore will:

Here is an example temporally contingent plan:

MODE: PDDL - Loading domain and problem files with enhanced parsing
Loading PDDL domain: homelessness.pddl
Loaded 6164 chars from homelessness.pddl
Loading PDDL problem: complex_problem.pddl
Loaded 4846 chars from complex_problem.pddl
Extracting planning components from PDDL...
Found 3 sensing actions:
  - call-shelter-service: ['(service-open shelter-service)', '(not (service-open shelter-service))']
  - call-food-service: ['(service-open food-service)', '(not (service-open food-service))']
  - check-shower-facility: ['(service-available shower-facility)', '(not (service-available shower-facility))']
No durative actions found (using simplified parser)
Using hardcoded sensing actions instead of parsed oneof constructs
Successfully loaded PDDL domain: homelessness-assistance
Successfully loaded PDDL problem: test-problem
Extracted 1 goals: ['(has-shelter)']
Unknown propositions: {'(service-open shelter-service)', '(service-open food-service)', '(service-available shower-facility)'}
Initial facts: 4 facts
Using enhanced planner with full contingent tree generation
Planning for goals: ['(has-shelter)']
Initial time: 14.5
Known facts: 4 facts
Unknown props: 3 unknown propositions
DEBUG: Testing action generation...
Available physical actions: ['(travel-to downtown-shelter)', '(travel-to food-bank)', '(travel-to bus-stop)', '(travel-to laundromat)', '(travel-to day-center)']
Available sensing actions: ['call-shelter-service', 'call-food-service', 'check-shower-facility']
Current belief state facts: ['(dirty-clothes)', '(hungry)', '(has-phone)', '(at downtown-park)']
Goal check: [False]

Planning completed in 32.49 seconds
Nodes expanded: 315608

=== FULL CONTINGENT PLAN TREE ===

Full contingent tree structure:
ROOT (time: 14.5)
  [State: 4 known facts, 3 unknown props]
├─ SENSING: call-shelter-service
  14.5: [SENSE] call-shelter-service [2.0]
    [State: 4 known facts, 3 unknown props]
  ├─ OUTCOME: (service-open shelter-service)
    ├─ SENSING: call-food-service
      16.5: [SENSE] call-food-service [2.0]
      ├─ OUTCOME: (service-open food-service)
        ├─ SENSING: check-shower-facility
          ... (tree continues)
        ├─ ACTION: (travel-to downtown-shelter)
          ... (tree continues)
        ├─ ACTION: (travel-to food-bank)
          ... (tree continues)
        ├─ ACTION: (travel-to bus-stop)
          ... (tree continues)
        ├─ ACTION: (travel-to laundromat)
          ... (tree continues)
        ├─ ACTION: (travel-to day-center)
          ... (tree continues)
      ├─ OUTCOME: (not (service-open food-service))
    ├─ SENSING: check-shower-facility
      16.5: [SENSE] check-shower-facility [1.0]
      ├─ OUTCOME: (service-available shower-facility)
      ├─ OUTCOME: (not (service-available shower-facility))
    ├─ ACTION: (travel-to downtown-shelter)
      16.5: [ACT] (travel-to downtown-shelter) [5.0]
    ├─ ACTION: (travel-to food-bank)
      16.5: [ACT] (travel-to food-bank) [5.0]
    ├─ ACTION: (travel-to bus-stop)
      16.5: [ACT] (travel-to bus-stop) [5.0]
    ├─ ACTION: (travel-to laundromat)
      16.5: [ACT] (travel-to laundromat) [5.0]
    ├─ ACTION: (travel-to day-center)
      16.5: [ACT] (travel-to day-center) [5.0]
  ├─ OUTCOME: (not (service-open shelter-service))
├─ SENSING: call-food-service
  14.5: [SENSE] call-food-service [2.0]
    [State: 4 known facts, 3 unknown props]
  ├─ OUTCOME: (service-open food-service)
  ├─ OUTCOME: (not (service-open food-service))
├─ SENSING: check-shower-facility
  14.5: [SENSE] check-shower-facility [1.0]
    [State: 4 known facts, 3 unknown props]
  ├─ OUTCOME: (service-available shower-facility)
  ├─ OUTCOME: (not (service-available shower-facility))
├─ ACTION: (travel-to downtown-shelter)
  14.5: [ACT] (travel-to downtown-shelter) [5.0]
    [State: 4 known facts, 3 unknown props]
├─ ACTION: (travel-to food-bank)
  14.5: [ACT] (travel-to food-bank) [5.0]
    [State: 4 known facts, 3 unknown props]
├─ ACTION: (travel-to bus-stop)
  14.5: [ACT] (travel-to bus-stop) [5.0]