AtomAI

AtomAI is an innovative framework for doing AI for simulations and interactive applications, focus in Games!

Technologies

AtomAI built up by bleeding-edge of AI technologies based in lastest researches. Underlying, it depends in extensible framework to leverage maximum Java language in spirit of Atom framework.

Many parts of AtomAI are very innovative and actually release the developer from low level concerning and save a lot of time redo common usecases implementations; without errors.

Dependencies

AtomAI depend a lot in good AI opensource projects

Java DataStructures & Mechanisms

Javolution
 Because real-time programming requires a time-predictable standard library. Javolution real-time goals are simple: To make your application faster and more time predictable!

Javolution solve some fundamental real-time problems with innovative technologies. Javolution is one of core dependencies of AtomCore and so AtomAI.

Guava & Guice

Two google opensource projects that make Java developer’s life easier.

Apache Commons

Lang

BeanUtils

Math

Logging

XXL
 XXL is a Java library that contains a rich infrastructure for implementing advanced query processing functionality. The library offers low-level components like access to raw disks as well as high-level ones like a query optimizer. On the intermediate levels, XXL provides a demand-driven cursor algebra, a framework for indexing and a powerful package for supporting aggregation.

XXL already solved a lot of problems in spatial, relational and metadata… Upon that base, AtomAI focus in higher level of abstraction like Graph, State, Tree; Flow, Stream, Load balance; later focus more in AI stuffs without worry about lower levels.

Qi4j
 is a framework for domain centric application development, including evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain Driven Design.
 Qi4j™ is an implementation of Composite Oriented Programming, using the standard Java platform, without the use of any pre-processors or new language elements. Everything you know from Java still applies and you can leverage both your experience and toolkits to become more productive with Composite Oriented Programming today.

Qi4j offers a way to config the system by layers and entities. More over, Entity-Composite (with relasionship enable) compare to Entity-components is a better way to compose things.

RxJava
 Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

RxJava already provided mechanisms for composing asynchronous and event-based programs. AtomAI then focus in design the flows of events of agents. This is a win-win scenario for boths.

Scripting

Groovy

Groovy leverage Java in a very elegent way. Make itself the most valid candidate to being a scripting language for Java and AtomAI to construct a very flexible framework. AtomAI also provide better mechanisms to automatic tasks and tools, give developer more power in editing scripts and actions.

AI Model and source structure

AIMA
 Java implementation of algorithms from Norvig and Russell's Artificial Intelligence - A Modern Approach 3rd Edition

is de-facto for AI techs. AtomAI modify and add implementations to AIMA-java that intergrate deeply with above technologies, make AIMA the most complete, powerful and open java AI framework.

Choco
  Choco3 is an open-source Java library for Constraint Programming.
  Choco3 comes with:
  various type of variables (integer, boolean, set, graph and real),
  various state-of-the-art constraints (alldifferent, count, nvalues, etc.),
  various search strategies, from basic ones (first_fail, smallest, etc.) to most complex (impact-based and activity-based search),
  explanation-based engine, that enables conflict-based back jumping, dynamic backtracking and path repair