recursal/Fanatic-Fandom huggingface dataset:
Meat Rotting Enabled

Meat rotting is a parameter that has two toggleable states, and is active by default.

When enabled, this allows meat to despawn (*which returns biomass page needed to the surrounding environment*) after a certain time. Disabling this feature means that meat will stay indefinitely until eaten.

In summary, this enables energy to be automatically recycled in the following few moments after a Bibite's death.

If enabled, meat pellets will start to rot after some time (*defined by the Meat Rotting Time parameter*), after which they will start decomposing at a rate of 1E/s.

## Impact on the Simulation

This option will obviously have a large impact on the food dynamic of the simulation. Indeed, if disabled, will greatly promote the evolution of meat-eating Bibites since, the moment a Bibite dies, energy is sequestrated in meat pellets and is prevented from being recycled into biomass which will prevent the growth of new plant pellets.

Due to the fact that biomass that is not returned to the environment it will also not contribute to pellet growth (*there is a fixed amount of biomass in a world which can be changed using the Biomass density parameter*), and can possibly lead to ecological instability and a mass extinction event if Bibites do not adapt fast enough to this ecological change.

## Recommendations

It is recommended to keep this enabled or untouched if you want a balanced world.

If you want to promote the existence of meat-eating Bibites while also preserving herbivores, it is recommended to instead play around with the related sub-settings.
Bibite Size

Bibites occupy physical space and thus have a size.

Since the Bibites occupy a 2-dimensional world, they only posses a length, perimeter, and area.

Their length (in units of u) can be calculated as :

**Bibite Length = 10u \* Size Ratio *(gene)* \* sqrt( maturity )**

If you count their pixel to try to get a realistic estimate of their surface area, it can be is approximately calculated as :

**Bibite Area (u2) = 42u2 \* Size Ratio *(gene)*2 \* maturity**
Maturity

A Bibite's Maturity represents how far the Bibite is through its development. It increases through Growth.

Unlike real-life, The Bibites' maturity is linked to Size, and not Age. As a result, maturity will only increase when a Bibite's Growth Output Neuron is activated, and not as it ages; although this feature is still subject to further development.

A Bibite's maturity at birth (*fresh out of its egg*) can be calculated from it's genetic code stub using the following formula:

**Maturity at Birth = ( Hatch Time *(gene)* / Brood Time *(gene)* ) 2**

## Adulthood

When a Bibite reaches a maturity of 1.0 (100%) it is now considered an adult, giving it the capacity to:

* Lay Eggs through
	+ Asexual reproduction
	+ Sexual reproduction *(not yet implemented)*
Latch

The Latch Function is the first non-linear function (non-linear function in the sense that the same stimulation will not always produce the same result).

Basically, the Latch Nodes hold an internal state, which is what it outputs instead of a transformation of the input stimulation.

If the total stimulation is above to 1.0, the node will set that internal value to 1.0, and if the total stimulation is below 0.0, it will set that internal value to 0.0. It will keep outputting the last value that was set when none of those conditions are met (between 0.0 and 1.0).

As such, the Latch Function can be used as a memory unit, where a stimulation above 1.0 acts as the "set", and a negative stimulation acts a the "reset".

The Latch nodes can also be useful to describe states that are either on or off, with no intermediary values.
Plant

Plant pellets

Plant matter is hard and slow to digest, while not containing too much energy.

At least it is soft and easy to chew.

You can play around with the Conversion Efficiency parameters to visualize the resulting curves and better understand the resulting dynamics, or to help you figure out the values that would produce a desired dynamic, on this Desmos Graph.
Modding

While still in it's infancy, the simulation aims to be heavily customizable and allow users to customize their experience through adding mods to the game.

## Simulation settings

The simulation settings are a good example of that, as their are directly integrated to the game interface to allow users to tune and modify the parameters and dynamics of the simulation. You can find a list of all of the available settings here.

Most settings exposed are there to tweak the functioning and dynamics of the simulation's systems, but some allows to disable or enable certain systems to completely change the simulation's dynamics.

## Standard Modding

For other purposes, most other modding will be done through adding mods to the Mods folder in the game's root. Currently, this only works for Sprite replacing mods. Code modifying mods have to be installed by replacing the BibitesAssembly.dll file of the game with a modded one.

The Mods folder can be found in the following path starting from the game's executable:

**Windows (32x, 64x) and Linux:** <*path to executable folder*>\The Bibites\_Data\Mods\

**Mac:** <*path to player app bundle*>/Contents/Mods

*Note: Those folders will only be generated after the game was opened at least once. So if you can't find them, run the game, then close it. It should then be there.*

### List of Modding Pages

* Procedural Sprites
* Modding with dnspy
Green Color

This is a gene which controls how green a bibite is.

### Bibite Color System

The bibite color system is a RGB-subtractive system, which means that having all values set to max will result in a black coloration. The colors of bibites can influence the simulation in a practical manner, if bibites evolve nuerons to detect color
Matter

Matter simply refers to any physical object composed of an **amount** of material.

The amount is counted in square units (u2), which is proportional to the space occupied by the material.

## Properties

Many physical properties of an object can be directly calculated from the amount of matter and it's composing material's properties.

#### Size

Size and dimensions will depend on the shape of the object, but the total occupied space will always be equal to the amount (u2). For a pellet of matter, as an example, the radius (u) will be calculated from the formula

# r

A

/

π

{\displaystyle r = \sqrt{A/\pi}}

#### Mass

The mass (g) of the object will depend on the object's material density (g/u2) multiplied by it's amount (u2).

## Examples

* Plant pellets
* Meat pellets
Gau

Gaussian Nodes (GAU):

The Gaussian function follows a bell shape. Its default value is 1.0 when not stimulated, and any stimulation, either positive or negative, will tend to decrease it's activation output.

This allows nodes using this function to act as "inverters".

It's also possible to use this node as a "range selector" if it's also stimulated by the constant node in addition to a real dynamic signal. As a connection to the constant node would effectively serve as an "offset", allowing the other(s) signal(s) to have a different value that would produce a maximum output.

*Disclaimer: I know this is not really a "Gaussian" function, but it resemble the shape enough that it works similarly while being easier to compute.*

 Default Value
(when not stimulated)
 Formula
Blue Color

This is a gene which controls how blue a bibite is.

### Bibite Color System

The bibite color system is a RGB-subtractive system, which means that having all values set to max will result in a black coloration. The colors of bibites can influence the simulation in a practical manner, if bibites evolve neurons to detect color.
Backward Force Fraction

The Backward Force Fraction is the amount of force exerted by a bibite when going backward, represented as a fraction of the set Forward Force. Its in-game explanation states that it is the "fraction of the Forward Force that is applied when going backward. 0 means they can't go backward, 1 means there's no difference."
Strength

Strength is a very important gene it is used for moving, eating, and attacking.

Strength and age interaction

(1 - strength penalty)^ageing factor

Movement

muscleMoveStrength = BibiteControl.forwardForce \* Mathf.Sqrt(d1Size \* SpeedRatio) \* ( ageStrengthPenaltyFactor \* defenceMovementPenaltyFactor);

muscleTurnStrength = BibiteControl.forwardForce / 2f \* SpeedRatio \* d1Size^3 \*( ageStrengthPenaltyFactor \* defenceMovementPenaltyFactor);

baseAccelerationCost = BibiteControl.moveCost \* SpeedRatio\* d1Size;

baseTurnCost = BibiteControl.turnCost \* SpeedRatio \* d1Size;

with deafault stats

muscleMoveStrength = 30 \* Mathf.Sqrt(d1Size \* 0.75) \* ( -0.1 \* -0.02);

muscleTurnStrength = 30/ 2f \*0.75 \* d1Size^3 \*( -0.1 \* -0.02);

baseAccelerationCost = 0.5 \* 0.75\* d1Size;

baseTurnCost = 0.25 \*0.75 \* d1Size;

Eating

Can bite pellets if their strength is 3x the hardness of the pellet.

Attacking

When attacking another Bibite Defence reduces damage by a max of 75%(manipulatable in the settings)

the Bibites mouth and body share a strength stat.

attackStrength = mouthStrength \* desireToAttack;

so with deafualt values

attack strength = 2.5\*0.5 = 1.25
Neuron Birth Cost

The Neuron Birth Cost is a factor in determining the cost of laying a bibite egg. The energy needed to lay an egg increases with the number of synapses and neurons in the bibite's brain, with the Neuron Birth Cost determining the energy cost per hidden neuron.

The default value is 250 mE or 0.25 E. This makes Neuron Birth Cost inconsequential for Bibits with small brains and small number of neurons, but considerable for Bibits with large neural networks, taking up a high percentage of the total egg laying cost. **(we should gather some data on what a "typical" BIbite looks like to give some numbers for perspective)**

Lowering the birthing cost too much + lowering their upkeep (energy cost of keeping synapses or neurons active each second) might result in bigger and more complex brains, but in longer simulations also might run into problems such as a big number of useless synapses and neurons which might slow down your computer.
Synapses

Synapses are a part of the bibite's brain and are analogous to the synapses of an animal's brain. Synapses have a value that represents the strength of that synapse. They have the function of connecting two neurons together, so that one can stimulate the other. The **stimulation value** from a particular connection is equal to to stimulating node's **activation level**, multiplied by the synapse's **strength**.

They have two states: They are either enabled and able to do their purpose, or they are disabled and do nothing. Enabled Synapses can mutate to become disabled, and disabled synapses can mutate to become enables. The probability of that occurring is determined by the Synapse Toggle Probability option. Disabled Synapses are also the product of neuron creating; when a synapse is split in two to form a neuron, the old synapse end up being a disabled one.
Metabolism

A Bibite's metabolism is the sum of all 'biological' processes that occur to sustain its normal functions.

As a result, a Bibite must expend energy at a certain rate in order to sustain it's metabolism.

If a Bibite's energy reserve is empty, then that required energy will be consumed from the Bibite's Health following the conversion ratio between Health and Energy.

The metabolism upkeep cost can be calculated with the following formula:

**Metabolism Cost (E/S) = Default Metabolism Cost (setting) \* Bibite Speed (gene) \* Bibite Size (2D)**

Energy intake is from consuming Plant or Meat pellets

When the health of the Bibite reaches 0%, the Bibite will have expired (*died*).
Egg laying cost calulations

E
g
g
l
a
y
i
n
g
c
o
s
# t
B
o
d
y
C
o
s
t
T
r
a
i
t
C
o
s
t
B
r
a
i
n
C
o
s
t

{\displaystyle Egg laying cost = BodyCost + TraitCost + BrainCost}

B
o
d
y
C
o
s
# t
100.0
∗
S
i
z
e
A
t
B
i
r
t
h
∗
G
a
m
e
S
e
t
t
i
n
g
s
.
M
a
x
E
n
e
r
g
y
T
o
M
a
x
H
e
a
l
t
h
R
a
t
i
o

{\displaystyle BodyCost = 100.0 \* SizeAtBirth \* GameSettings.MaxEnergyToMaxHealthRatio}

S
i
z
e
A
t
B
i
r
t
# h
S
i
z
e
R
a
t
i

o
2

∗
M
a
t
u
r
i
t
y
A
t
B
i
r
t
h

{\displaystyle SizeAtBirth = SizeRatio^2 \* MaturityAtBirth}

M
a
t
u
r
i
t
y
A
t
B
i
r
t
# h
(
H
a
t
c
h
T
i
m
e

/

B
r
o
o
d
T
i
m
e

)
2

{\displaystyle MaturityAtBirth = (HatchTime / BroodTime)^2}

T
r
a
i
t
C
o
s
# t
B
o
d
y
E
n
e
r
g
y
R
a
t
i
o
∗
(
1.0
1.0

/

G
a
m
e
S
e
t
t
i
n
g
s
.
H
e
a
l
t
h
B
o
d
y
R
a
t
i
o
)

{\displaystyle TraitCost = BodyEnergyRatio \* (1.0 + 1.0 / GameSettings.HealthBodyRatio)}

B
o
d
y
E
n
e
r
g
y
R
a
t
i
# o

G
a
m
e
S
e
t
t
i
n
g
s
.
b
a
s
e
B
o
d
y
E
n
e
r
g
y
R
a
t
i
o

v
i
e
w
A
n
g
l
e

/

G
a
m
e
S
e
t
t
i
n
g
s
.
v
i
e
w
A
n
g
l
e
B
o
d
y
C
o
s
t

v
i
e
w
R
a
d
i
u
s

/

G
a
m
e
S
e
t
t
i
n
g
s
.
v
i
e
w
R
a
d
i
u
s
B
o
d
y
C
o
s
t

s
r
e
n
g
t
h

/

G
a
m
e
S
e
t
t
i
n
g
s
.
s
t
r
e
n
g
t
h
B
o
d
y
C
o
s
t
l

I
m
m
u
n
e
S
y
s
t
e
m

/

G
a
m
e
S
e
t
t
i
n
g
s
.
i
m
m
u
n
e
B
o
d
y
C
o
s
t
)
.

{\displaystyle \begin{align}BodyEnergyRatio = \ & GameSettings.baseBodyEnergyRatio \\ & + viewAngle / GameSettings.viewAngleBodyCost \\ & + viewRadius / GameSettings.viewRadiusBodyCost \\ & + srength / GameSettings.strengthBodyCostl \\ & + Immune System / GameSettings.immuneBodyCost).\end{align}}

B
r
a
i
n
C
o
s
# t

(
G
a
m
e
S
e
t
t
i
n
g
s
.
N
e
u
r
o
n
B
i
r
t
h
C
o
s
t
∗
N
u
m
b
e
r
O
f
H
i
d
d
e
n

G
a
m
e
S
e
t
t
i
n
g
s
.
S
y
n
a
p
s
e
B
i
r
t
h
C
o
s
t
∗
N
u
m
b
e
r
O
f
S
y
n
a
p
s
)
∗
S
i
z
e
R
a
t
i
o

{\displaystyle \begin{align}BrainCost = \ & (GameSettings.NeuronBirthCost \*NumberOfHidden \\ & + GameSettings. SynapseBirthCost \* NumberOfSynaps )\* SizeRatio\end{align}}
Relu

Rectified Linear Nodes (ReLU):

Rectified Linear Units are another popular choice as an activation function in the field of Artificial Intelligence.

This Activation function is very similar to the Linear Function, but is capped in the negative range.

However, in order to prevent processing complications, its output value will be capped at +100, still leaving a more than reasonable window of activation.

It is best suited for states that can range from 0 to very high positive values.

 Default Value
(when not stimulated)
 Formula
Bibite Biology

Bibites, like their real world counterparts, have their biology set by their genes. All bibites rely on their genes and brain to control how they grow, age, metabolize food and when to reproduce. This page will go over each part of bibite biology.

## Biology

### Body Parts

Bibites bodies consist of a head with one or two eyes with a mouth. They have two limbs and a tail.

Their mouths change shape depending on their diet. Herbivore mouths have multiple tentacles which help with filter feeding. Omnivores have mouths that are shaped like Us with no teeth. Predators mouths are pincers which can have spikes depending on their strength gene.

Bibites can have four different sprites depending on their size ratio (if procedural size is set to both)

S
i
z
e
∗
√
(
m
a
t
u
r
i
t
y
)

{\displaystyle Size\*\surd(maturity)}

Bibites will choose the sprite closest to their size ratio.

Bibite Sprites

### Diet

Bibites have a diet gene which can range from 0 to 1 which in turn is used for this equation which determines how efficient bibites can digest meat and plants.

H
e
r
b
i
v
o
r
o
u
s
E
f
f
i
c
i
e
n
c
# y
70

{\displaystyle HerbivorousEfficiency = 70% - DietGene \* (70% - -30%)
}

C
a
r
n
i
v
o
r
o
u
s
E
f
f
i
c
i
e
n
c
# y
70
%
−
(
1
−
D
i
e
t
G
e
n
e
)
∗
(
70
%
−
−
30
%
)

{\displaystyle CarnivorousEfficiency=70\%-(1-DietGene)\*(70\%--30\%)}

Both boundaries can be set in the settings.

Bibite Diet
 Omnivory
 Carnivory

### Bibite Stomach

Bibites have spaces inside their bodies analogous to stomachs where food goes when eaten.

#### Capacity and Fullness

The stomach of a bibite is half their surface area (U2). Fullness, in turn, is just the percentage of how much capacity is taken by material in their stomach.

#### Acid Level and Digestion Rate

Bibites can control their acid level via an output node in their Brain called **Digestion**. The node output can range from 0 to 100% acid level. Acid level is used to determine the **Digestion Potential**

d
i
g
e
s
t
i
o
n
P
o
t
e
n
t
i
a
l

=
s
i
z

e

2
D

∗
m
e
t
a
b
o
l
i
s
m
s
p
e
e
d
∗

a
c
i
d
L
e
v
e
l

/

f
u
l
l
n
e
s
s

{\displaystyle {digestion Potential} = size\_{2D} \* metabolism speed \*{acidLevel}/{fullness}}
Ageing

**Ageing** is a mechanic that limits the lifespan of bibites. All bibites have an **age** and an **ageing threshold** (called **Ageing Start** in the Biology Panel). These two numbers are used to calculate an **ageing factor**, which is in turn used to calculate strength and metabolism penalties for the bibite.

A bibite's age is simply the amount of time it has been alive. This is based on game time, not real time, i.e., bibites will age 10 times faster at when the simulation is set to 10 times speed (not accounting for any effects on the underlying Unity game engine caused by performance issues).

A bibite's aging threshold is calculated using the Ageing Threshold setting in the Energy Balance tab, along with the bibite's genetically determined Metabolism Speed. The formula is simply

A
g
e
i
n
g
T
h
r
e
s
h
o
l
# d
A
g
e
i
n
g
T
h
r
e
s
h
o
l
d
S
e
t
t
i
n
g
÷
M
e
t
a
b
o
l
i
s
m
S
p
e
e
d

{\displaystyle Ageing Threshold = Ageing Threshold Setting\div MetabolismSpeed}

The ageing threshold is subtracted from the bibite's age to calculate it's ageing factor. However, the ageing factor cannot be less than zero:

A
g
e
i
n
g
F
a
c
t
o
# r
max
(
A
g
e
−
A
g
e
i
n
g
T
h
r
e
s
h
o
l
d
,
0
)

{\displaystyle AgeingFactor=\max(Age-AgeingThreshold, 0)}

The ageing factor is used alongside two other settings to determine the penalties applied to the bibite. The settings are **Age Strength Penalty** and **Age Metabolism Penalty** under the Energy Balance tab.

The bibite's strength and metabolism after penalties is calculated as follows:

P
e
n
a
l
i
z
e
d
S
t
r
e
n
g
t
# h
B
i
b
i
t
e
S
t
r
e
n
g
t
h
×
(
1
−

A
g
e
S
t
r
e
n
g
t
h
P
e
n
a
l
t
y
S
e
t
t
i
n
g

)

A
g
e
i
n
g
F
a
c
t
o
r

{\displaystyle PenalizedStrength = BibiteStrength \times (1-|AgeStrengthPenaltySetting|)^{AgeingFactor}}

P
e
n
a
l
i
z
e
d
M
e
t
a
b
o
l
i
s
# m
B
i
b
i
t
e
M
e
t
a
b
o
l
i
s
m
×
[
1
(
A
g
e
i
n
g
F
a
c
t
o
r
×
A
g
e
M
e
t
a
b
o
l
i
s
m
P
e
n
a
l
t
y
S
e
t
t
i
n
g
)
]

{\displaystyle PenalizedMetabolism=BibiteMetabolism \times [1 + (AgeingFactor \times AgeMetabolismPenaltySetting)]}

where BibiteStrength and BibiteMetabolism are what the bibite's strength and metabolism would be if calculated using only the normal formulas for those values.

The result of these calculations is a decrease in the bibite's strength as it ages, making it less able to attack other bibites and eat, while its metabolism increases, which increases the amount of energy the bibites needs to survive. These taken together all but ensure that the bibite will eventually die.
Tanh

Hyperbolic Tangent Nodes (TanH):

The Hyperbolic Tangent function is also very popular as an activation function in the field of Artificial Intelligence.

It displays a similar shape to the Sigmoid function, but instead ranges for -1 to 1, resulting in a default output of 0 when not stimulated.

As a result it's a more generic function that can have a wider range of use.

It is best suited for states and desires that can have a negative value translating to a meaning that make sense.

 Default Value
(when not stimulated)
 Formula
Fundamental Units in The Bibites

The Bibites tries to use the default standard units from the SI (or at least analogous units to the real world units) but have a set of it's own units to convey the scale of the simulation. It's a good idea to understand their respective use and reason of existence.

## Fundamental Units

These Units are the fundamentals units that define the simulation. They are as physical as they get.

 g

***Note:** Temperature is eventually planned to be simulated, but as it is not at the moment it is not part of the fundamental units.*

## Derived Units

These units are constructed from the Fundamental Units, but still denote useful values and quantities that have a direct physical interpretation.

***Note:** Some derived units might be missing. More obscure units that don't appear often, or at all, have been left out in order to keep the table at a reasonable size, even if they might be used behind the scene.*

## Functional Units

Functional Units don't necessarily have a concrete and fully descriptible physical analog, but are used to denote some values or quantities of something. Most of them are used to express bibite stats in a user-friendly manner.

## Scaling Prefixes

Following the standards set in the international system of units, the simulation uses prefixes to change the scale of a unit and making it easier to read very big or very small values.
Plant Pellets

Plant pellets (*also known as Pellets*) are one of the main sources of energy in the simulation meant for consumption by Bibites. They appear in the simulation by consuming the free Biomass, resulting in the re-circulation of energy to an available form.

## Related Settings

* Pellet Collision stub
* Pellet Growth stub
* Pellet Size stub
* Default Pellet Mass stub
* Diet
Meat Pellets

Meat Pellets are currently the only source of meat available for Bibites.

Meat will usually rot after a certain time (if enabled), which will convert the energy stored within to available biomass, allowing plants pellets to grow.

The amount of energy that a Bibite receives when consuming a meat pellet is dependent on its diet citations needed.

## Sources

* Bibite Death
	+ When a Bibite dies, it will leave meat pellets on the ground, containing the energy proportional to its body energy plus its stored energy.
* Breaking/crushing Eggs (*not yet implemented*)
Gordon and Rebecca, Coming Through!

> Well that might work for you, Gordon, but I have my own way of doing things.
>
> Rebecca

**Gordon and Rebecca, Coming Through!** is an upcoming episode of the twenty-fourth series.

## Plot

Gordon and Rebecca do the same work - but they go about it differently. When Rebecca tries to be more like Gordon, it doesn't go well... for Gordon!

## Characters

* Thomas
* Gordon
* James
* Emily
* Nia
* Rebecca
* Diesel
* Troublesome Trucks
* Henrietta
* Percy Template:Does not speak
* Toby Template:Does not speak
* Philip Template:Does not speak
* Ryan Template:Cameo

## Locations

* Knapford
	+ Knapford Yards
* Gordon's Hill
* Maron

## Cast

### UK

* John Hasler as Thomas
* Keith Wickham as Gordon
* Rob Rackstraw as James and a Troublesome Truck
* Teresa Gallagher as Emily
* Yvonne Grundy as Nia
* Rachael Miller as Rebecca
* Kerry Shale as Diesel and a Troublesome Truck
* Maggie Ollerenshaw as Henrietta

### US

* Joseph May as Thomas
* Kerry Shale as Gordon, Diesel and a Troublesome Truck
* Rob Rackstraw as James and a Troublesome Truck
* Jules de Jongh as Emily
* Yvonne Grundy as Nia
* Rachael Miller as Rebecca
* Maggie Ollerenshaw as Henrietta

## Trivia

* This is the first and only episode in which Henrietta speaks but Toby does not.
* This is the only episode of the twenty-fourth series in which Percy appears but does not speak.
Void Avoidance Distance

activating void no mo could be tempting at first when you see that your bibites keep running into the void, and it could be a good way of quickly making a stable population. But I can asure you your bibites will figure out interesting ways of staying inside the spawners radius.

Basicly, when a Bibite reaches the limit of the set distance, they'll do a sharp turn back towards where they came from.
Synapse Birth Cost

The Synapse Birth Cost is a factor in determining the cost of laying a bibite egg. The energy needed to lay an egg increases with the number of synapses and neurons in the bibite's brain, with the Synapse Birth Cost determining the energy cost per synapse.

The default value is 50 mE or 0.05 E. This makes Neuron Birth Cost inconsequential for Bibites with small brains and small number of neurons, but considerable for Bibites with large neural networks, taking up a high percentage of the total egg laying cost. **(we should gather some data on what a "typical" Bibite looks like to give some numbers for perspective)**
Bibite Collision System

Bibites can be hurt when colliding with a high-velocity object.

Simply, when a collision happens, if the collision speed is above a certain Threshold *(Controlled by the **Collision Damage Threshold** setting)* the bibite receives an amount of damages proportional to the collision's speed and object's mass (the object's momentum). The Collision Damage Constant setting is then used to scale the damages.

D
M
# G
m
a
s

s

o
b
j
e
c
t

∗
(
s
p
e
e

d

c
o
l
l
i
s
i
o
n

−
s
p
e
e

d

T
h
r
e
s
h
o
l
d

)
∗
c
o
l
l
i
s
i
o
n
D
a
m
a
g
e
C
o
n
s
t
a
n

t

(
s
e
t
t
i
n
g
)

{\displaystyle DMG = mass\_{object}\*(speed\_{collision}-speed\_{Threshold}) \* collisionDamageConstant\_{(setting)} }
The Bibites Wiki

* This Wiki will try to detail and explain as many mechanics of the Bibites simulation-project as possible. Here, you'll be able to find most of the information freely available. Although the information provided may be slightly convoluted or complicated, we encourage simplifications to difficult-to-understand concepts to help readers who have difficulties reading.

**Welcome to the The Bibites Wiki!**

We're a collaborative community website about The Bibites that anyone, including you, can build and expand. Wikis like this one depend on readers getting involved and adding content. Click the "ADD NEW PAGE" or "EDIT" button at the top of any page to get started!

*(remember to always list the changes that you have made in the "Describe what you changed" text-box that is beside the "SAVE" button)*

## About The Bibites

The Bibites is an ongoing (2016-today) Artificial Life project developed by Léo Caussan which started out as a humble passion project. Its main goal was to prove that life can adapt and survive through the forces of natural selection and other mechanisms of evolution despite current technological limitations.

The main agents of the simulation are Bibites.

An algorithm loosely based on the NeuroEvolution of Augmenting Technologies (*NEAT*) algorithm is used to simulate and evolve the brains of Bibites, and the software uses the Unity framework for development.

The Bibites can be compared to other artificial-life games, such as Conway's game of life, Evolv.io, and Gridlife no page found.
Viruses

Viruses infect Bibites and spread to other bibites, have their own set of genes, and harm their hosts in various ways.

## Genes

### Replication Rate

These genes affect the speed at which the virus will spread inside it's host bibite.

### Incubation Delay

These genes dictate the incubation period of the virus. It will influence for how long the virus stays dormant in it's host bibite before it starts spreading.

### Damage Genes

These genes affect how the virus harms it's host bibite. A value greater than 1.0 means that gene is active.

### Spread Genes

These genes affect how the virus spreads to other Bibites.
Key Bindings

This is a list of all current key bindings that can be used in the simulation :

* Space : Pause/Unpause the simulation
* H : Hides/Shows the UI (*for those incredible cinematic shots*)
* R : Selects a random Bibite
* E : Selects a random Egg
* K : Toggles AutoPan
* I : Selects a random Infected Bibite
* G : Selects the Bibite with the highest generation count and defaults to the oldest one
* O : Selects oldest Bibite
* J : Toggles healthbar when a Bibite is selected
* S : Save Bibite (*if a Bibite is selected*)
* F5 : QuickSave
* F9 : QuickLoad
* The Mouse Wheel: Zoom in and out
* Right-Click: Moves the camera while dragging
* Arrow keys: Moves the camera (Must be enabled in settings)
Default Forward Force

The Default Forward Force, or Muscle Force, is what determines the "strength" a bibite has when moving forward. It is described in-game as "force exerted by 'Regular-sized' bibites when moving forward per units of length." Essentially, bibites with higher Muscle Force will be able to move faster and push aside pellets more easily than bibites with lower Muscle Force.

Health also has a proportional effect on Muscle Force.
Bibites

Bibites are the agents and main focal point of the simulation (*a project started by Léo Caussan in 2016*).

They are considered to be living entities as they posses the necessary qualities to fit into the description of life:

* They use energy (*that they get in the environment from various sources*) to sustain themselves and their metabolism.
* They execute actions and behaviors such as growth, movement, pheromone production, and much more.
* They have the ability to reproduce by laying Eggs while also displaying random mutations, and thus subsequently displaying evolution and natural selection.
* They posses a brain that can evolve in logic and topology (*alongside their genetic code*), which can eventually evolve to respond to their environment in an increasingly complex manner.
* They have a set of Genes that can change over generations, with stats like Defence ,Strength and many more important genes.

Bibites are also multicellular in nature due to the presence of a certain virus gene that spreads itself through the cells of the Bibite, thus nullifying the claim that they are single-celled organisms.

## Inspiration

    It is theorized that they are a type of arthropod or microzoa, and can be compared to their real-life counterparts and inspiration; the Trilobite (*extinct*). however, more updates are needed in order to properly specify their place in the tree of life.

Bibites are considered as animals due to their organised and linear behavior, therefore they cannot be zooids.

There is currently no canon lore for their existence.

## Etymology

The term "Bibite" is a reference to a French Canadian (*''Québécois''*, which is the Project Creator's first language) word, which is used to refer to small insects or critters.
"Gentleman" behavior

Candidate for deletionThis page has been nominated for removal from the wiki.Remember to check what links here and the page history before deletion.
This is a common behavior that emerges from the ever-evolving Brains of simulated Bibites. While it is not 100% guaranteed to emerge in every world, it is still considered worthy enough to take note of.

## Description

This behavior is best described as a way of avoiding the death of another Bibite when a Bibite is obstructed, and is the most altruistic behavior documented so far.

When a Bibite is obstructed by another Bibite it will slow down and wait for the other Bibite to continue swimming. some variations of this behavior have even shown the use of pheromones from the obstructed Bibite that signal the other to speed up.

The use of coloration can further evolve this behavior by distinguishing between friend and foe.

The consequence of this behavior is that if two Bibites manage to face each other, then they stay still until the other either manages to swim away or dies.

## Reason behind its existence

Natural selection is obviously the most significant mechanism at hand, and is the driving force behind why this behavior emerges in the first place. This behavior emerges to raise the survival chances of all Bibites involved.

Bibites that run into other Bibites blindly also have a chance of killing their own offspring, thus the genes stub for this behavior will eventually emerge to reduce this chance; almost always without a regard of the world settings involved.
Simulation Size

Simulation size is a parameter that allows the user to alter the max limit on how large or small their world is. This allows for more pellets and Bibites to exist in one world.

The parameters is expressed in units (u) which is the distance unit in The Bibites. As a reference, a mature bibite (with a growth of 1.0) and a genetic size of 1.0 will measure 10u.

It is to be noted that those boundaries are not enforced (except if the Automatic Void Avoidance option is enabled) and bibites are free to venture out of the designated area, but developments outside of the bounds are limited by the fact that no food will grow there.

The total amount of energy in the simulation can be calculated using this formula:

TE = Biomass Density \* Simulation Size2

## Impact on the Simulation

Simulation size does in fact have a significative impact on how Bibites evolve, but a smaller world size may create an effect similar to Fosters' rule (*also known as the Island effect*). This small world-size could in theory limit resources such as pellets, which in turn may force Bibites into becoming smaller and a lower overall population size due to the selective pressures at hand. Bibites may resort to cannibalism as a way of countering overpopulation.

However, Simulation size has a direct effect on the genetic diversity across the bibite population. A bigger size allows for more possibilities of isolation and thus divergent evolution.

This is one of the settings which has the biggest impact on the simulation performances since the simulation size is squarely correlated to the amount of pellet and bibites that will be existing. Doubling this parameter will approximately quadruple the accessible simulation area and subsequently the number of entities (and thus quadruple the load on the machine).

## Recommendations

It is recommended to start with a low value and gradually work your way up to test what your machine is capable of handling.

Starting with too high a value could cause serious problems.
Defence gene

The defence stat reduces the damage dealt and increases the mass of the Bibite.

Damage Reduction

25/(1/(1 - defence) - 1) = Defence damage reduction so if a bibite had 5 defence it would look like this 25/(1/(1 - 5) - 1) = -20 so reducing damage by 20 hp.

Mass increase

Defence Mass Factor = 1f + Defence Mass Factor \* Defence with 5 defence this would be 1+10%\*5 would be 1.5 Defence mass factor(add more here later).
List of Common Behaviors

This page is here to list common and peculiar behaviors for Bibites that can be found in a world, as well as what settings or dynamics encourage that behavior.

## Behaviors and Adaptations:

* **Herbivory** - This behavior is defined by a strictly herbivorous and vegetarian diet. This is the most common adaptation considering that plant pellets are the most abundant source of energy in the simulation. Herbivorous Bibites will tend to optimize their diet gene in order to focus solely on plants.
* **Herding** - This behavior is defined as movements of two or more Bibites as a cohesive group.

* **Carnivory** - This behavior is defined by a strict meat-based diet that includes. In order to promote this adaptation, changing settings to promote the availability and the potential of meat pellets as a food source. Doing things like increasing the energy-to-body ratio, or the rotting delay of meat goes a long way in achieving that and making the evolution of carnivory more likely.

* **Age-based Fasting** - This behavior is defined as old Bibites not eating in order to provide sustainance to the younger generation. It comes under Altruism.

* **Scavengery** - This behavior is defined by Bibites eating meat from dead remains. Scavengers will not kill another Bibite, but will instead wait for them to die and then consume their cadaver. Scavengers will often keep a balanced diet gene and use meat as a supplemental energy source. It is especially successful in simulations where pellets are scarce and a high spawn rate leads to lots of deaths due to infeasible neural networks, and the scavengers feed on the remains.
* **Apex predation** - *is theorized to be possible.*

* **Altruism** - This is a broad behavior that describes any Bibite acting in a way that is detrimental to it's own survival, usually benefiting another individual or the species as a whole.

* **Cannibalism** - This characteristic is justified by a Bibite that ends up killing it's own kind regardless of diet given the opportunity. This can often be involuntarily, and with time adaptation usually arise to avoid others individuals. It is extremely common in primitive-minded bibites.
* **The Gentleman Behavior** - The behavior of stopping or slowing down when seeing other bibites in order to prevent bumping into and damaging one another. It is often part of Herding.
* **Pheromone Trickery**
* **Pheromone Betrayal**

* **Grey Goo** - The behavior is defined by small size, low health and low energy usage, and the ability to grab. These Bibites are able to reproduce fast and can latch on to other Bibites causing their death. These species can easily reach over 1000 bibites and are hard to go extinct once established.
Pellet Size

The deafualt size of a Plant Pellet is 20u^2 or about 5u in diameter. A Meat Pellets has a base diameter of ~3.58u and is 10.06u^2. The scaling down makes sense logical with size 0.1 plant pellet having 2u^2 area. With going up you begin to see that the number isn't exactly 20u^2 or is using a more complicated equation than expetced as size 2 is 40.23u^2 in area. A little over 2 times bigger. The visible squares don't appear to be correlated with size of pellet (further information needed).
Sigmoid

Sigmoid Nodes (SIG):

The Sigmoid function is the default activation function of most nodes.

It is very popular in the field of artificial intelligence. Its activation value is bounded between 0 and 1 and is therefore very useful for nodes that represent something where a value outside of theses bounds wouldn't make much sense.

Its default value of 0.5 means that it'll still present a signal when the node doesn't receive external stimulations.

It is then best used when it represents a state or desire that should have some activation by default.

 Default Value
(when not stimulated)
 Formula
Mysterious Stones

Mysterious Stones are dropped randomly by normal mobs, precious ores as well as special boss monsters. They can also be bought over at the mall. These Mysterious Stones can be handed in to the Magic Traders that are located throughout the game in exchange for rare staffs and items. A good way to get these stones is to head over to the God Dimension where it is full of boss monsters.
Bibite Attack System

Bibites have health have the capacity to be **hurt**.

In order to integrate Bibites into that dynamic and increase the potential for interactivity, they have the capacity to attack other entities by biting them through their mouth. The behavior is highly different depending on the bibite attacking another bibite or a matter pellet.

## Attacking Pellets

In The Bibites, Attacking is used to bite chunks off pellets in the event where it is too big to be swallowed whole.

* First, the exerted force must be greater than the pellet's material hardness. The applied force can be calculated as such:

# F
d
e
s
i
r
e
T
o
A
t
t
a
c

k

(
O
u
t
p
u
t
N
o
d
e
)

∗
S
T

R

(
g
e
n
e
)

∗
1
D
S
i
z
e

{\textstyle F = desireToAttack\_{(Output Node)} \* STR\_{(gene)} \* 1DSize }

* Then, if the desire to swallow (output node) is greater than 0
	+ The maximum swallowable amount of pellet is calculated from the mouth opening and available stomach space
	+ That amount is removed from the pellet and added to the bibite's stomach
* If the desire to swallow is bellow 0, the pellet is split in two equal parts.

## Attacking Bibites

Bibites can attack other individuals by biting them. Doing so deals damages, but also allows the attacking bibites to eat.

When a bibite Attacks, the dealt damages are calculated as such:

D
m
# g
d
e
s
i
r
e
T
o
A
t
t
a
c

k

(
O
u
t
p
u
t
N
o
d
e
)

∗
(

S
T
R

(
g
e
n
e
)

∗
1
D
S
i
z
e
−

D
E
F

p
r
e
y

)
∗
B
i
t
i
n
g
D
m

g

(
s
e
t
t
i
n
g
)

{\displaystyle Dmg = desireToAttack\_{(Output Node)} \* ({STR}\_{(gene)} \* 1DSize - {DEF}\_{prey} )\*BitingDmg\_{(setting)}}

If the prey has higher defence (DEF) stat than the Attacker's mouth strength, no damages are applied, emulating material hardness.

If the attacker wanted to eat, the dealt damages are converted to their energy equivalent, and then to a meat pellet that is transferred to the Bibite's stomach. If the Bibites Didn't want to eat, the pellet is instead spawned near the attack site.

Finally, the attacked bibite is pushed away proportionally to the received damages.
Lobby Map

## **Lobby**

Upon joining VextraCraft you will be spawned in our Lobby. Here you can decide which server to join and play in such as, **Creative, Achroma RPG, or Minigames.** If you decide to stick around in the Lobby you can take a look around at the copious amount of artwork on display that was created by members of this very server! Along with the art, the Lobby also contains the **newsboard;** this where server members can stay up to date on new information and announcements for the game.

Upon first entering the game make sure to link your Minecraft account to your Discord account; this gives you an instant 50K in-game cash for a plot in the Creative server! Link your discord by typing **/discord link** in-game and PMing the VextraCraft bot in the discord server the 4 number code you receive.

Special perks can be accessed by purchasing the VIP rank in-game for 1M ingame cash; more information in this is over at the VIP Rank page. It is highly recommended to purchase this as soon as possible to get the full player experience.

\*If at any point during the game you would like to return to the Lobby, use the command **/lobby**.
Virus Enabled

This option allows Viruses page needed (or Virions) to exist and infect Bibites.

It is a toggelable parameter that has two states.

When enabled, allows Viruses to spawn in naturally and infect a random host (*preferably a Bibite*).

The rate at which Viruses spawn in is determined by the Virus Generation Time.

This option can be found in the world settings.
Eggs

Eggs are Bibites that have the potential to be born. They are laid by other Bibites and will contain a copy of the genetic material of its parent. When laid they extract energy from its parent and reserve it for growth and survival.

When laid, they slowly develop during the hatching process, which's length depends on the Hatch Time citations needed Gene.

After the time delay has elapsed, the egg will disappear and a young Bibite will have "hatched".

**Maturity at birth = (Hatch Time (gene) / Brood Time (gene)) 2**

Calculating the exact energy to lay an egg is complicated, but simplified it the sum of 1) the energy needed to grow the bibite to the size it has at birth, 2) the cost of the bibite's physical traits (view angle, view range, immune system, strength, notably not defense) and 3) the cost of the bibite's brain.

Of course, if the offspring presents mutations, the egg might not contain enough energy for full development anymore. Depending on the lacking amount, the bibite could either not have a full energy reserve, or die during development.

### Environmental interactions

There is currently no environmental way to destroy an egg once laid due to its lack of environmental interactions.

Possible solutions to the lack of environmental interactions could include:

* Ovivorism
* Being crushed when walked on by a Bibite
Molecular Clock Theory

The **molecular clock** is a figurative term for a technique that uses the mutation rate of biomolecules to deduce the time in prehistory when two or more life forms diverged.

This methods can be used in the bibites to estimate how long ago two related bibites diverged from their common ancestor.

This rests on the concept that if we know the mutation rate, and count the number of individual mutations between the two individuals, a simple division should provide us with how many generations ago their genes were similar (common ancestor).

## Using the genes

The most straightforward way of using this technique is to compare the gene code of the two bibites. If they are related enough, you should be able to count the individual number of differences between the two individuals.

Considering the bibites' genes are floating-point values (instead of letters like on earth), it's difficult to assert if a different value is the result of one mutation, or multiple mutations that targeted the same gene more than once.

For this reason, it's possible to use statistics to convert the observed number of genes difference into a most likely "actual number of mutation events". However, it is important to note that this approach is probabilistic, and the closer the number of counted differences are to the total number of genes (28 as of 0.4.1), the less accurate this method becomes.

The process is pretty complicated and is computer heavy to run so here's the resulting table to help out:

Now that you have a probable number of actual mutations, simply divide it by two (the two lineages mutated simultaneously since diverging) and the expected mutation rate.

N
G

=

N
m

2
∗

R
m

{\displaystyle N\_G = {N\_m\over2\*R\_m}}

As an example, if we got a likely mutation number of 18 from the table, and we have an expected mutation rate of 0.83 (genetic mutation rate + background mutation rate), we should expect that our two individuals shared an ancestor approximately 11 generations ago.
Spiky Fetuses

The **Spiky Fetuses** (no official name given) are a common threat in the first few levels of Struggling.

## Description

Spiky Fetuses appear as horrid round blobs of tumor-like flesh with red patches, veins and hazardous spikes all around. They also possess varying amounts of eyes and mouths scattered around. They vary in size, with some being larger than Troy.

## Damage

Like most hazards, the Fetuses will destroy either of Troy's arms or head on contact.

## Behavior

Spiky Fetuses won't move, and their eyes don't follow the player. However, when Troy goes near them, the Spiky Fetuses will let out incessant squeals.

Mid-Lethal Specimen Facility, however, the Fetuses won't be grounded in a spot, and will fall from unseen cages full of green fluid. Their fall is preceded by glass shards and a green cloud, and they'll kill Troy or their limbs. While falling, they constantly squeal.

## Trivia

* At the first Spikey Fetuses Troy encounters, due to the way Troy reacts to danger, if you get in just the right spot, Troy and the Fetuses will continuously scream at each other, and the only way to stop it is to keep on moving.
* During the falling Spiky Fetus encounter, the name of the soundtrack playing is aptly titled "Spiky Fetus Dubstep".
Energy

Energy is the main currency of the simulation. Most actions and interactions (*with the environment and other Bibites*) cost energy and only a few sources exist that can provide it to Bibites.

Each transfer between its different forms might also include inefficiencies that return energy to the surrounding environment in the form of Biomass.

## Forms

* Biomass
* Body Points (max health)
* Health
* Energy Reserves
* Eggs
* Plant Pellets
* Meat Pellets