Giter VIP home page Giter VIP logo

cephalopods's Introduction

cephalopods's People

Contributors

jobtalle avatar smeljey avatar unkorunk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cephalopods's Issues

Tentacle thickness

Tentacle thickness should decrease linearly from the base, meaning tentacle mass increases exponentially.

Spinning creates motion out of nothing

Spinning causes tentacles to be pulled towards the body, which causes the tentacles to displace water. The tentacle displacement then increases the spin rate, creating perpetual motion without effort.

Symmetrical DNA definitions

Some parts encoded in DNA should be able to be symmetrical:

  • Symmetrical tentacles have the same properties, but opposed muscle directions
  • Symmetrical eyes are symmetrically located
  • Symmetrical neurons have the same axon connections, but opposing weights

Brain

This should basically be a multi layer perceptron, possibly with memory cells or signal feedback to allow periodic tail gaits.

Collisions

Agents should be able to push each other away, preferable without giving false impulses to each others tentacles.

Some questions about code

try to rewrite code in c++, but have some questions about code:
in body.js:

Body.prototype.update = function(impulse) {
    this.brain.update();

    let input = 0;
    let output = 0;

    for (const appendage of this.appendages) {
        for (let i = 0; i < appendage.inputs; ++i)
            appendage.setInput(this.brain.outputs[output++].output, i);

        for (let i = 0; i < appendage.outputs; ++i)
            this.brain.inputs[input++].activation += appendage.getOutput(i);

        appendage.update(impulse);
    }
};

cant find where function getOutput(i) define.
and appendage.setInput declared as

Tentacle.prototype.setInput = function(value) {
    this.head.setAnchor(this.position, this.delta, this.calculateDelta() + (2 * value - 1) * this.sign);

with one argument, not two.

in body constructor:

  switch (dna.appendages[appendage].object) {
            case DNATentacle:

why you switch on object case, as understand appendages dont have another objects?

tentacle.js:

Tentacle.prototype.build = function() {
    let tail = this.head;

    for (let i = 0; i < this.length; ++i) {
        const spring = this.spring * Math.pow(1 - (i / (this.length - 1)) * 0.35, this.springPower);

        tail = new Segment(
            tail.position.copy().add(this.delta.copy().normalize().multiply(Tentacle.SPACING)),
            spring,
            Tentacle.SPACING,
            tail);
    }

    return tail;
};

in this function you made loop over length of tentacle, but return only one tail, so to find the finish tail you make segments, not read previous create?

Visualize axons

Preferably plot activation and traffic over time. It'd be nice to be able to plot Line element values as well, using the same plotter.

It'd be even nicer to be able to plot multiple things in the same plot.

Predation

Bigger agents can eat smaller ones. The smaller agents cannot be removed, but its tentacles can be removed. This gives a strong disadvantage to the smaller agent while not removing it from the simulation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.