You are browsing as a guest. Sign up (or log in) to start making projects!

Dycosystem

Hardware
  • 10 Devlogs
  • 116 Total hours
Open comments for this post

12h 0m 11s logged

Dycosystem — Devlog

What’s up guys! This one was mostly math, not code.

Got the Neural_network class doing an actual feedforward pass now, but honestly most of my time this session wasn’t spent typing, it was spent on a whiteboard (well, my head) trying to actually understand the math before I wrote a single line.

The part that took forever

Matrix multiplication only works if the columns of the first matrix match the rows of the second, and figuring out WHY that has to be true, not just memorizing it, is what ate most of my time. Once that clicked, the actual network made a lot more sense: weights between input and hidden layer have to be shaped (hidden_nodes, input_nodes) specifically so the multiplication lines up correctly, same for hidden to output. It’s not arbitrary, the shape IS the math.

What actually got built

  • Weight matrices between input→hidden and hidden→output, plus bias matrices for each layer
  • A sigmoid function to squash the raw weighted sums into something usable
  • feedforward(input): turn the input into a matrix, multiply by weights, add bias, sigmoid, repeat for the next layer, turn the result back into a normal array

Fed it [1, 0] and got a real guess back out. Random weights so the guess means nothing yet, but the math pipeline actually works end to end now, and I understand every step of it instead of just copying it.

Small but important fix

Weights used to randomize as integers 0-9 which is wrong for a neural network, changed it to floats between -1 and 1, which is what weights are actually supposed to start as.

What’s left

train() exists but does nothing yet. That’s the next math rabbit hole, figuring out how to actually adjust these weights based on how wrong the guess was.

Slower progress than usual but way more understanding behind it. Thanks for reading, see you next devlog!

(I am posting a picture of my dog since I have nothing to post a picture of, this is probably the devlog with the most pictures!)

0
0
8
Open comments for this post

10h 1m 17s logged

Dycosystem — Devlog

What’s up guys! Big one this time — the network can actually think now.

Wired the Neural_network class up to a real feedforward pass. Before this it was just remembering how many nodes it had — now it actually takes an input and produces a guess.

Feedforward is alive

  • Added weight matrices between input→hidden and hidden→output, plus bias matrices for each layer, all randomized on creation
  • Added a sigmoid activation function so the outputs squash into a usable range instead of just raw numbers
  • feedforward(input) now does the full pass: multiply by weights, add the bias, squash through sigmoid, twice (once per layer), and hands back a real guess

Ran it with a plain input array [1, 0] and got an actual output back. First time this thing has done anything resembling thinking, even if the “thinking” is currently just random weights.

Matrix got two new helpers

  • Matrix.make_from_array() turns a plain array into a column matrix
  • make_to_array() turns a matrix back into a plain array

Needed both since the network has to convert real inputs into matrix form to do the math, then convert the result back into something normal code can use.

Also fixed something small

randomize_matrix() used to fill values with random integers 0-9, which makes no sense for neural network weights. Changed it to random floats between -1 and 1, which is the actual range weights should start in.

What’s still missing

train() exists but it’s empty right now — the network can guess, it just can’t learn from being wrong yet. That’s next.

Genuinely exciting one, this is the first time the neural network side of the project has produced output instead of just being scaffolding. Thanks for reading, see you in the next one!

0
0
8
Open comments for this post

13h 58m 42s logged

Dycosystem — Devlog

What’s up guys! Small but satisfying update.

I went back through my Matrix class and actually fixed a bug that was sitting in the matrix multiplication code — I was resetting my running sum inside the innermost loop instead of before it, so it was only ever keeping the last multiplication instead of adding them all up. Classic off-by-scope mistake.

Fixed: matrix multiplication

  • Moved the sum reset outside the loop so it actually accumulates properly
  • Pulled it out of scalar_mult and made it its own static matrix_mult function, since cramming two different operations into one method never made much sense

New: map and map_index

  • map(fx) runs a function over every value in the matrix
  • map_index(fx) does the same but also passes in the row/column, so the function can behave differently depending on position
  • This is going to matter a lot once I get to activation functions — applying something like sigmoid to every node is exactly what map is for

New: print_table

  • Small helper so I stop retyping console.table(this.matrix_values) everywhere

Why this matters

Feels like boring plumbing work, but this is the stuff the whole neural network is going to be built on top of. I’d rather get it solid now than debug it later once there’s an actual brain depending on it.

Thanks for reading, see you in the next one!

0
0
9
Open comments for this post

12h 39m 2s logged

Dycosystem — Devlog

What’s up guys! Quick but important update this time.

I leveled up from just a single perceptron to actually starting a real multi-layer neural network. First thing I had to do for that was build my own Matrix class, since it turns out neural networks are basically just matrix math wearing a trench coat — the weights, the inputs, the outputs, all matrices, and “guessing” is really just multiplying them together.

Matrix class

So I wrote one from scratch. It can zero itself out, randomize itself, transpose, multiply by a number or by another matrix, and add stuff to itself. Not the most exciting thing to build, but literally every neural network sits on top of this, so I wanted to actually get it instead of just grabbing a library and moving on.

The actual network

I also started the real Neural_network class, but honestly it’s not doing much yet — right now it just remembers how many input, hidden, and output nodes it has. No actual thinking happening in there yet. Next up is hooking the Matrix class into it so it can take inputs and spit out a real guess, and after that, actually learn from being wrong.

Also reorganized everything

Now that I’ve got two real tracks going I split the project up — Genetic_Algorithms/ for the ecosystem sim, and NeuralNetwork/ for all this neuroevolution groundwork.

Slow progress this time, but it’s the kind of slow that matters — I’d rather actually understand the math than fake my way through it. Thanks for reading, see you in the next one!

0
0
15
Open comments for this post

15h 43m logged

What’s up guys! Smaller update this time, but an important one…

I reorganized the project into folders first — all the ecosystem stuff now lives in Genetic_Algorithms/, since I’m about to start a second track of the project: Neuroevolution/.That’s right, I started learning how to actually give my creatures brains instead of hardcoded behavior! First step was building a single Perceptron from scratch — the simplest possible neural network, just one neuron with weights. I trained it to learn how to separate points above and below a line, and you can literally watch it learn live: it starts with a random decision line, and one point at a time it adjusts its own weights until the line converges to match the real one. Points get circled green when the perceptron guesses right and purple when it’s wrong, so you can watch it get better in real time.This is step one of a much bigger plan — eventually I want my creatures’ behavior to come from an evolved neural network instead of me hardcoding “flee predator, seek food.” A perceptron obviously can’t do that on its own, but it’s the building block everything else is made of, so I wanted to actually understand it before jumping straight to neuroevolution. Next up is stacking these into a real multi-layer network, and then evolving them instead of training them with math. Thanks for reading, see you next devlog!

0
0
3
Open comments for this post

9h 51m 31s logged

What’s up guys! Big update this time…

I finally added predators — they hunt prey and meat, and now have their own mating animation that’s different from prey’s (gliding together with a little weave, nose-to-nose instead of tail-to-tail, then a baby appears). Prey also got real genders now, and mating actually mixes both parents’ DNA (with a chance of mutation) instead of just copying one parent. Prey can flee from predators too.The coolest new thing is “predatorify” — if a prey eats enough meat, it transforms into a predator! Still tuning how easy that should be to trigger.Also added a population graph (rolling + full history) and a click-to-inspect feature so I can click any creature and see its type, lifetime, health, gender, and DNA. Microorganisms are wandering around chasing meat now too.Basically this session was about making all the systems actually talk to each other — hunting, fleeing, mating, dying, and feeding back into the ecosystem. Starting to feel alive! Thanks for reading, see you next devlog!

0
0
6
Open comments for this post

10h 52m 29s logged

What’s up guys! It’s me! And I am here to tell you my progress…

I think that this is the most progress I have made yet. I have made a lot of systems, and I am going to run you guys through it. The first system, is the actual environment, and actually made the triangles, but decided that I would make my own design and it is pretty simple. I also made debugging circles that you can turn on and of with right click, and you can add new preys with left click. I have the preys on the environment right now, but I am going to add all sorts of things later! Also, there is mating in the whole environment so the preys don’t get extinct. I am still playing around a bit in the parameters and I am going to add predators, since I added meat into the environment too. I really like this project, and I think I will keep going! Thank you for reading this devlog! (The video is a little taste and the show case of the environment)

0
0
4
Open comments for this post

10h 41m 55s logged

I am here with the new information…

I made a new particle system to make a new vehicle that can pursue the mouse, and this will be a great way to start off since we need to teach the vehicle to move and pursue the target. We also need to teach them about avoiding the target. All I did was find a lot of information about that and finished making the particle system. I broke that particle system right now because I want to change that particle system into the vehicle. So I don’t have something to post in my pictures page right now so I just leave the picture of the very first none moving triangle vehicle, just so you can see the very first ever design of it.

0
0
2
Open comments for this post

8h 8m 58s logged

What’s up guys, I finally started to start coding and…

Hello guys! I started to work on my code for this project! I decided to start from scratch, and start over! The tutorial wants me to use p5.js, but since I want to learn MORE :) I decided to right all of the code and the classes from the start and that is what made me code for THIS LONG! What I have right now is a circle that can accelerate and have velocity, and all of this is based off a custom class, and it also has custom vector creations! The whole this is really going along really well, and I really like the progress! Also, I can learn math along this journey! I hope you can follow along more in this journey and see you in the next devlog! This is the custom, accelerating, velocity, vector, sphere thing :) :

0
0
4
Open comments for this post

12h 14m 36s logged

I am back with a new project! And it is not small…

I decided to start a new project, and it is a rather new type of project that I started to plan on. It is called DYCOSYSTEM. Dycosystem is a harware object either a cube or a sphere and there will be a syringe that can control the whole digital ecosystem. The sphere and the cube will both contain a special ecosystem, that will have digital life, and they will evolve as the time goes on. also, I will add special sounds to the animals to add sound and more diversity in the enviroment. I hope you guys can follow along my journey, and I hope I will finish this project! :) Today, I just went through youtube tutorials about vectors and inheriting and artificial life, so I couldn’t code, but still follow along! (I had nothing to add here so I just dropped a picture of my very simple plan below(IT IS ACTUALLY SO SIMPLE))

0
0
4

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…