title | date | draft |
---|---|---|
Membrane |
2021-04-04 22:27:00 +0530 |
false |
Skunkwork for Distributed Cellular AI systems.
Could be something, could be nothing.
Cellular interface: Skeletal API that exposes structures to build intelligent information systems based on Cellular structures.
Vocabulary: Receptors, stages, signals, environment, mutation (driven by external environment)
Membrane was inspired by the podcast "Under The Skin" with Russel Brand featuring Bruce Lipton. Link:
It speaks about the remarkable cellular structure:
- membranes: they are receptors to environment and pass the message to nucleus.
- nucleus: Reproduction center i.e. gonads of the cell: this is what uses the cell culture based on information from the skin(receptors) of the cell i.e. membranes and generates information.
Fundamentally it starts with defining a cell:
%Cell{
cell_id: pos_integer | bitstring,
receptor: term,
signal: term,
nucleus: term
}
"..When you look at yourself as a single entity, that is the illusion. That truth, which is the jumpy part, is that we are skin-covered Petri dishes inside of which are 50 trillion-plus cells. Inside the body is the original culture medium called blood.." -- Bruce Lipton
A Cell's lifecycle then becomes honing ML models, better training and shaving off unhealthy cells. Once the cells are ready to split, reproducing becomes easy:
@typedoc """
Reproduces a cell into two daughter cells replicating from the original copy.
"""
@typedoc """
Reproduces a cell into two daughter cells replicating from the original copy.
"""
@type reproduce_t :: (%{
:cell_id => cell_id :: Cell.cell_id_t,
:cell_stages => cell_stages :: cell_stages_t,
} -> {new_cell_state_ :: new_cell_state_t, new_cell_state :: new_cell_state_t})
@spec replicate(lifecycle_eligibility_checks, reproduce_t) :: list(new_cell_state_t)
def replicate(%{}, reproduce_fn) do
# lifecycle_eligibility_checks
# reproduce
end
If available in Hex, the package can be installed
by adding membrane
to your list of dependencies in mix.exs
:
def deps do
[
{:membrane, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/membrane.