Senses

In order to be able to receive Stimuli, Entities possess Senses. Each Sense is specialised for Stimuli reception in a determined Medium. For example, a normal human has 5 Senses:

Each Sense has also an intrinsic power. The more powerful a Sense, the more it will be able to receive weak Stimuli.

As a Stimulus intensity, a Sense capacity is given by positive real values. A logarithmic scale identical to the previous one for Stimuli can be built:

    <0.001 -> <-3: exceptionally weak power.
    0.001  -> -3: very weak power.
    0.01   -> -2: weak power.
    0.1    -> -1: low power.
    1      -> 0: medium power.
    10     -> 1: high power.
    100    -> 2: strong power.
    1000   -> 3: very strong power.
    >1000  -> >3: exceptionally strong power.
  

In order to know if a Stimulus has been received by a Sense, we have to multiply the two powers (or add the two values on the logarithmic scale). With a value of 1, the Stimulus is received normally. Below 1, the Stimulus is badly received. Above 1, the Stimulus is very well received.

  Stimulus | Sense | reception
  ----------------------------
     1        1        1       -> received
     1       0.1      0.1      -> not well received
     1       10       10       -> well received
    0.1       1       0.1      -> not well received
    0.1      0.1      0.01     -> not well received
    0.1      10       1        -> received
    10        1       10       -> well received
    10       0.1      1        -> received
    10       10       100      -> very well received
  

According to the reception level, the Stimulus description can vary.

As soon as it is received, the Stimulus is temporarily kept in a sensitive memory. So the Entity can consult received Stimuli at any time without having to ask their reemission to the source for all that. This memory is completely independent of the Entity memory and is managed in a totally autonomous way.

   ----------- explicit obs.  ------------        ----------
   |  New    |--------------->| Sensitive|<------>| Entity |
   | Stimuli |--------------->|  memory  |        |        |
   ----------- high intensity ------------        ----------
                Stimuli (*)

  (*) level = fct(concentration) ;
  

It works in fact in the same way as a cache memory, by keeping the last received Stimuli or the most consulted ones whereas the other ones will be erased (or forgotten) when it will be needed to free space.

Anyway, Stimuli will stay a limited time in this memory. It is indeed rather natural to not feel a Stimulus anymore after some time when it does not evolve. For instance, when one encounters an unusual smell, one notices it at once and one ends up not paying attention anymore some minutes later...

Stimuli are filtered by Senses and transformed into descriptions (see Descriptions). Controllers can access only to these descriptions. They get them directly through Senses and not from the Entity's Memory (there is already the PerceptionState as a sensitive memory).