Author Topic: LifeAI open source C++ library  (Read 2248 times)


  • *
  • Roomba
  • Posts: 6
LifeAI open source C++ library
« on: September 08, 2011, 11:45:38 PM »
LifeAI is an open source C++ library for Artificial Intelligence decision-making. It can be integrated in video games, robotics, or any application that requires artificial intelligence.

Download LifeAI

What is the benefit of LifeAI?

LifeAI helps facilitate entity reactions to the changing dynamics of a complex, virtual or real environment.  The result is a greater sense of autonomy.

What does it include?

LifeAI includes functions for managing variables, and computes action preferences for entities based on the provided variables.  A file input/output system with specialized syntax is also included.  It does NOT include a system for pathfinding, image/audio analysis, or learning (though learning is a future goal).

How does it work?

Entities and actions are created in C++ and text files with LifeAI's syntax.  Entities have characteristics that describe them called "stats".  They consider their value of the stats and how much they are modified to assess the "pros" and "cons" of an action.  They also consider their value of other entities involved in the action and how it affects them.  They can then determine an overall value for performing the action.  As stats in the simulation change, LifeAI updates the best action options for the entities. The actions can then be implemented as needed in a simulation.

Why LifeAI instead of other AI solutions?

LifeAI was designed to be as simple, intuitive, and flexible as possible. It includes optimizations to perform well at real-time speeds.  It can be integrated in almost any project that requires artificial intelligence.

What AI theory is it based on?

It most closely resembles the Utility Theory.
« Last Edit: June 26, 2013, 01:10:53 AM by jeremiah »


  • *
  • Nomad
  • ***
  • Posts: 89
  • automatic mistake machine
Re: LifeAI open source C++ library
« Reply #1 on: September 09, 2011, 10:08:01 AM »
hi jeremiah :)

i've surfed over the site. i'm wandering how algorithm for best action decision works?


  • *
  • Roomba
  • Posts: 6
Re: LifeAI open source C++ library
« Reply #2 on: September 09, 2011, 11:10:53 PM »
Sure. :)  First, you may want to refer to this if any of the terminology is foreign:
Here is a description of entity logic when actions are considered in laiUpdate():

1. Variable requirements considered, action only occurs if met

2. Entity requirements considered, entities only considered for roles if met

3. Modification amounts calculated
- starts with raw mod amount
- adjusted by mod influencers.
(Influencers are calculated by first determining how far the stat amount is from the universal stat norm.  Once that is obtained, they are divided by the stat norm.  For inverse influencers, the relationship is flipped.  The norm is divided by the stat amount.  Influencers are also scaled by a weight.)
- restricted by stat min/max
- restricted by mod min/max

4. Modification values calculated
- calculate percentage of stat modified
- multiply percentage modified by entity value of stat
- adjusted by mod value influencers
- restricted by mod value min/max

5. Role values calculated
- all of the mod values added together for the role
- entity in a particular role looks at the role values of all roles, scales them according to their value of the entity occupying the role, adds the resulting scaled and polarized role values together to form their final role val.
- restricted by role value min/max
« Last Edit: June 26, 2013, 01:14:24 AM by jeremiah »


  • *
  • Roomba
  • Posts: 6
Re: LifeAI open source C++ library
« Reply #3 on: June 26, 2013, 01:15:29 AM »
Version 1.1 is now available. This release focuses on usability enhancements.  Highlights of the release include:

- Actions with negative values can now be selected as the "best action". Enables entities to choose the "lesser of two evils," if an action with a positive value is not an option.
- Added support for new "string" type. Convenient for storing words or phrases in LifeAI files.
- Added feature for creating multiple instances of variables, stats, strings, entities, and actions in LifeAI files at the time of their creation.
- Added laiSetLink() and laiSync() functions as an alternative way to sync data to and from LifeAI. Allows linking the memory address of a data type such as a floating point number to a variable, stat, or string in LifeAI. When laiSync() is called, syncs changes in the data to LifeAI.



Please login or register.

Login with username, password and session length
The ALTAIR Robot Chronicles
by Tony Ellis (Home Made Robots)
Today at 07:53:36 AM
Thanks Again
by Art (Graphics and Video Software)
April 24, 2017, 01:41:21 AM
AI in cars
by Data (General AI Discussion)
April 24, 2017, 01:24:18 AM
outline from gadient mask
by korrelan (General AI Discussion)
April 23, 2017, 08:16:04 PM
Friday Funny
by Art (General Chat)
April 23, 2017, 07:37:42 PM
Nothing Else Matters
by (General Chat)
April 21, 2017, 05:04:38 AM
Prepare to be Transformed...
by Maviarab (AI in Film and Literature.)
April 20, 2017, 07:18:34 PM
Want to learn artificial intelligence
by yotamarker (AI Programming)
April 20, 2017, 06:48:34 PM
by Art (AI News )
April 19, 2017, 06:19:36 PM
A Murder Posted on Facebook Prompts Outrage and Questions Over Responsibility
by Art (AI News )
April 18, 2017, 10:12:52 AM
AI based 3d scanner
by Art (AI News )
April 18, 2017, 10:04:39 AM
Artificial Earthling
by Art (AI News )
April 14, 2017, 03:49:08 PM
Faster websites with fewer bugs
by Tyler (Robotics News)
April 13, 2017, 10:50:45 PM
New Tools Needed to Track Technology’s Impact on Jobs, Panel Says
by Tyler (AI News )
April 13, 2017, 10:50:43 PM
SMART automation
by Tyler (Robotics News)
April 13, 2017, 04:48:34 PM
Taming data
by Tyler (Robotics News)
April 13, 2017, 10:48:07 AM

Users Online

26 Guests, 0 Users

Most Online Today: 29. Most Online Ever: 208 (August 27, 2008, 08:24:30 AM)