From aHuman Wiki
Jump to: navigation, search
Project Planning

@@Home -> ProjectPlanning


Project Phases / Steps

A lot is to be done on Wiki, but generally it is in a good shape:

1. Create project Wiki - done

The most active stage is this one:

2. Create coding framework and define most essential features

Phase Goals:

  • Setup stable and transparent (documented) development environment
  • Freeze vision
  • Create exact high-level design, which fits the vision
  • Create component diagram, with one main function per component
  • Choose AI technology set for each of the component
  • Specify component interface

See aFramework Requirements and Status

Real coding currently can be done for below only:

3. Create aMatter

Phase Goals:

  • Demonstrate Perception/Self-Learning features
  • Demonstrate Cognition as meaningful sensor control
  • Demonstrate Feeling Feature
  • Implement above core functions using real-time neural networks

See aMatter Requirements and Status

Until completion of previous steps any activity for below ones should be avoided:

4. Create aChild

Phase Goals:

  • Demonstrate Personality Features
  • Demonstrate Thinking Process
  • Persisting of learned experience
  • Running shared live instance

See aChild Requirements and Status

5. Create aHuman

Phase Goals:

  • Demonstrate competence in specific area
  • Demonstrate ability to bring value

See aHuman Requirements and Status

Development Approach

  • Generally do not use Open Sources tools and libraries, only design elements
  • Increase level of complexity step by step
  • Perception -> Reflection -> Cognition -> Consciousness

Current Challenges


  • implementing near-human congition with limited resources
  • sustained learning

Realtime Neural Networks:

  • receptive field processing
  • regular circuits in non-cortex nucleus
  • store and recall
  • interneurons


  • sensor control circuit
  • feeling circuits
  • stream of consciousness
  • networks of interneurons


  • cortex model - external connectors and their functional roles, NeuroPool items and their connectivity, temporal dynamics
  • association memory technology
    • a lot of entities
    • time-based links
    • linking distant items
    • multi-hop associations

Using Third-party Libraries

Generally we have below options:

  • don't use a copy of external code to implement 3-d party library functions (not suitable if take into account the complexity of aHuman task)
  • use library code as a reference to understand algorithms and implement the same with required amendments (the way chosen when project has been started)
  • use library as is, in form of committed binaries and headers or as full sources

Last one is the way that looks to me most effective now. To keep it consistent with our architecture:

  • never use external library API directly, do it only via facade interface
  • support having in the codebase several libraries for the same purpose, e.g. several neural network implementations, and related wrappers in facade to address different coding style and design approaches

Current Activities

Future Features