Základná neurónová sieť v Godot4. Chuťovka na dnes s animáciou & zdroják zdarma, MIT licencia:

Základná neurónová sieť v Godot4. Chuťovka na dnes s animáciou & zdroják zdarma, MIT licencia:

Ahojte, dnes malá neurónová chuťovka pre Godot4. Takto vyzerá animácia bežiacej neurónovej siete s tým, že sa vždy rozžiari uzol autíčka buď pre rýchlosť, alebo vzdialenosť meranú od prekážky v bezpečnej vzdialenosti senzoru. Neuróny sú len dva, keďže som chcel ukázať, ako pracuje základná neurónka v Godot4. Ako vždy, pomáhal som si AI gpt, načo myslieť dnes, veď máme super tech, ktorá dáva barličky pre myseľ: https://hrubos.tech/blogy/content/images/20251213211819-basic_neural_network_hrubos.webp

No á prečo ju riadi rýchostný neurón? Lebo, keď auto stojí, ako môže merať vzdialenosť od prekážky pred ním?

extends Node2D
@onready var attached = 0
@onready var auto1 = $Auto1
@onready var border = $Border1Towards
@onready var proximity_bar = $Auto1/Control/Proximity1Bar
const BAR_MAX_SCALE = 10.0
var fade_speed = 2.0
var speed = 100
var proximity_x=200

#nastaví Proximity1Bar na 200 ak je presne od border1towards 200px vzdialený
func setme_proximity1bar(proximity_x):
    var distance = abs(auto1.position.x - border.position.x)

    var t = clamp(distance / proximity_x, 0.0, 1.0)
    proximity_bar.scale.x = t*proximity_x/BAR_MAX_SCALE

func _ready() -> void:
    $connection1lace.self_modulate.a = 0.0
    $neuron1.modulate.a = 0.0
    $neuron2.modulate.a = 0.0
    $Auto1/Control/Proximity1Bar.visible=false
# Fade-in neuron1
func fadeNeuron1On(delta):
    var texture = preload("res://neuron1active.svg")
    $neuron1.texture_normal = texture
    $neuron1.modulate.a = clamp($neuron1.modulate.a + fade_speed * delta, 0.0, 1.0)

# Zhasnutie neuron1
func fadeNeuron1Off():
    $neuron1.modulate.a = 0.0

# Fade-in neuron2
func fadeNeuron2On(delta):
    var texture = preload("res://neuron1active.svg")
    $neuron2.texture_normal = texture
    $neuron2.modulate.a = clamp($neuron2.modulate.a + fade_speed * delta, 0.0, 1.0)

# Zhasnutie neuron2
func fadeNeuron2Off():
    $neuron2.modulate.a = 0.0

func _process(delta: float) -> void:
    var moving_up = Input.is_action_pressed("ui_up") and $Border1Towards.position.x > $Auto1.position.x + 10
    var moving_down = Input.is_action_pressed("ui_down") and $Auto1.position.x > 180

    # Pohyb Auto1
    if moving_up:
        $Auto1.position.x += delta * speed
    elif moving_down:
        $Auto1.position.x -= delta * speed

    if attached == 0:
        # neuron1 fade-in pri pohybe, inak zhasne
        if moving_up or moving_down:
            fadeNeuron1On(delta)
        else:
            fadeNeuron1Off()
    elif attached == 1:
        # neuron1 + neuron2 fade-in pri pohybe, inak zhasnú oba
        if moving_up or moving_down:
            fadeNeuron1On(delta)
            fadeNeuron2On(delta)
            setme_proximity1bar(proximity_x)
        else:
            fadeNeuron1Off()
            fadeNeuron2Off()

func _on_attach_2_neuron_pressed() -> void:
    $connection1lace.self_modulate.a = 1.0
    attached = 1
    $Auto1/Control/Proximity1Bar.visible=true

func _on_detach_2_neuron_pressed() -> void:
    $connection1lace.self_modulate.a = 0.0
    attached = 0
    $Auto1/Control/Proximity1Bar.visible=false

Kredit dávam aj pánovi učiteľovi: https://www.youtube.com/watch?v=VgzHT9quo5c

Môj zdroják je pre vás zdarma na stiahnutie tu: https://hrubos.tech/repo/basic_neural_network_godot4.3.zip


Author: AarNoma

The first Slovak cyborg 1 system

Comments “Základná neurónová sieť v Godot4. Chuťovka na dnes s animáciou & zdroják zdarma, MIT licencia:”