Ai-challenger.net is a platform to test and evaluate different kinds of algorithms, from computer basic algorithms like sorting to advanced algorithms like traffic control or trajectory planning aided with computer vision and more complex challenges.

We develop games and simulations designed to evaluate and optimize any kind of algorithms when played. We call this games and simulations the challenges.

Its composed by the following elements
:


Games/Simulators

We have a suite of developed challenges that can be used instantly to learn, develop or validate any kind of algorithms.

Server


We provide a server that executes this challenges on demand so you can connect and test your algorithms.
Your algorithms (The challengers)


You can test your algorithms by performing the following steps:
1.- Connect to a challenge endpoint using websockes. (This is going to run a challenge just for you)
2.- You are going to receive the challenge output in text format and a png base64 data with the visualization of the current challenge state in real time.
3.- You can send commands by websockets to control the challenge until the challenge its acchieved.


For any challenge we provide as output a score that is related with the algorithm performance, you can iterate any times you want so you can improve the performance of your algorithm, for some challenges you can indicate a seed for random numbers so you can run the same escenario different times to generates benchmarks for different algorithms or versions.

How to use:


Here is an introductory guide for the first challenge created, the callenge is called steer.


This is a very basic sample, the goal is to control the white dot to "eat" the turquoise dots.

To test your algorithm and perform as a challenger you can connect by websockets to:

ws://ai-challenger.net:5555/steer/client

using the following parameters:

ID='your challenger id' , it can be anyone and it can be used to monitor your game execution.

ARG0='seed' , you can indicate the seed used for random calculations of targets.

Once connected turquoise dot is going to start to move on a random direction depending the indicated seed used for random numbers generation. If you indicate the same you can play the same game to do different benchmarks.

On the websockets you are going to start to receive the following data in plain text format:

pos:-5.86,51.34
Speed:0.50
Angle:255.00
target_pos:-45.27,64.90
snap:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAA7EAAAOxAGVKw4bAAA...

Where:

pos: is the current player white dot position.
speed: is the current player white dot speed.
angle: is the current player white dot direction.
target_pos: is the position of the turquoise dot that has to be "eaten" by white dot, once eaten the challenge is going to generate a new one.
snap: is a screenshot of the challenge current status in png format. Like the one posted before.

How to control the white dot:

Using the established websocket connection on:

ws://ai-challenger.net:5555/steer/client

You can send commands in plain text to control the white dot behaviour. This are the supported commands:

ascii
'j' char to turn ball direction to the left.
ascii 'l' char to turn ball direction to the right.
ascii 'l' char to increase ball speed.
ascii 'k' char to decrease ball speed.

Maybe you can consider too easy this challenge, however you can use only the snap data (png image) to test your computer vision algorithms, this use case can be used to evaluate:

Computer vision to detect white and turquoise dots.
Algorithms to estimate dots direction and speed.
Algorithms to intercept turquoise dots movement.


Available challenges: