Page 2 of 2

Re: Minecraft discussion

Posted: March 18th, 2026, 7:29 pm
by NNlk05
hotcrystal0 wrote: July 7th, 2025, 6:08 pm I know it has been two years since the last post, but this post is worth it.

I thought of an interesting idea for a custom Catagolue symmetry involving Minecraft:
1. Take a seed and isolate a radius of chunks around spawn
2. Treat slime chunks as ON cells and non-slime chunks as OFF cells
3. Upload the “soup” to Catagolue

Can someone actually make this?
Here, we talked about this in our DM's.
slimechunk.h

Code: Select all

#pragma once
#include <stdint.h>
#include <stdbool.h>

bool is_slime_chunk(int64_t world_seed, int x_chunk, int z_chunk);
slimechunk.c

Code: Select all

#include <stdint.h>
#include <stdbool.h>

bool is_slime_chunk(int64_t world_seed, int x_chunk, int z_chunk) {
    uint64_t slime_seed = world_seed + 
                         ((uint64_t)x_chunk * x_chunk * 0x4C1906) + 
                         ((uint64_t)x_chunk * 0x5AC0DB) + 
                         ((uint64_t)z_chunk * z_chunk * 0x4307A7) + 
                         ((uint64_t)z_chunk * 0x5F24F);

    uint64_t internal_state = (slime_seed ^ 0x5E434E432ULL) & 0xFFFFFFFFFFFFULL;
    
    uint64_t advanced_state = (internal_state * 0x5DEECE66DULL + 0xBULL) & 0xFFFFFFFFFFFFULL;

    return ((advanced_state >> 17) % 10) == 0;
}
slimechunk_stdin.c

Code: Select all

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <unistd.h>
#include <getopt.h>
#include "slimechunks.h"

void print_rle(int64_t seed, int width, int height, int start_x, int start_z) {
    printf("# Seed: %ld\n", seed);
    printf("x = %d, y = %d, rule = B3/S23\n", width, height);

    char *rle_buffer = malloc(width * 2 + 2);
    if (!rle_buffer) return;

    int total_chars = 0;

    for (int z = 0; z < height; z++) {
        int rle_ptr = 0;
        int x = 0;
        while (x < width) {
            bool is_slime = is_slime_chunk(seed, start_x + x, start_z + z);
            char type = is_slime ? 'o' : 'b';
            int count = 0;
            
            while (x < width && is_slime_chunk(seed, start_x + x, start_z + z) == is_slime) {
                count++;
                x++;
            }

            if (count > 1) {
                rle_ptr += sprintf(&rle_buffer[rle_ptr], "%d%c", count, type);
            } else {
                rle_ptr += sprintf(&rle_buffer[rle_ptr], "%c", type);
            }
        }

        rle_buffer[rle_ptr++] = (z == height - 1) ? '!' : '$';
        rle_buffer[rle_ptr] = '\0';

        for (int i = 0; i < rle_ptr; i++) {
            putchar(rle_buffer[i]);
            if (++total_chars >= 70) {
                putchar('\n');
                total_chars = 0;
            }
        }
    }
    
    if (total_chars > 0) putchar('\n');
    putchar('\n');

    free(rle_buffer);
}

int main(int argc, char *argv[]) {
    int64_t start_seed = 0;
    int64_t end_seed = -1;
    int width = 10;
    int height = 10;
    int start_x = 0;
    int start_z = 0;

    int opt;
    static struct option long_options[] = {
        {"seed", required_argument, 0, 's'},
        {"end-seed", required_argument, 0, 'e'},
        {"width", required_argument, 0, 'w'},
        {"height", required_argument, 0, 'H'},
        {"corner", required_argument, 0, 'c'},
        {0, 0, 0, 0}
    };

    while ((opt = getopt_long(argc, argv, "s:e:w:H:c:", long_options, NULL)) != -1) {
        switch (opt) {
            case 's': start_seed = atoll(optarg); break;
            case 'e': end_seed = atoll(optarg); break;
            case 'w': width = atoi(optarg); break;
            case 'H': height = atoi(optarg); break;
            case 'c':
                start_x = atoi(optarg);
                if (optind < argc && argv[optind][0] != '-') {
                    start_z = atoi(argv[optind++]);
                }
                break;
        }
    }

    if (end_seed < start_seed) end_seed = start_seed;

    for (int64_t s = start_seed; s <= end_seed; s++) {
        print_rle(s, width, height, start_x, start_z);
    }

    return 0;
}
To build:

Code: Select all

$ gcc -Wall -Wextra -march=native -O3 -o slimechunks_stdin slimechunks_stdin.c slimechunks.c
Options

Code: Select all

options:
  -h, --help            show this help message and exit
  -s SEED, --seed SEED  Starting world seed (default: 0)
  -e END_SEED, --end-seed END_SEED
                        End world seed for range processing
  -w WIDTH, -x WIDTH, --width WIDTH
                        Width in chunks
  -H HEIGHT, -z HEIGHT, --height HEIGHT
                        Height in chunks
  -c CORNER CORNER, --corner CORNER CORNER
                        Top-left chunk coordinates (x z)
Run with

Code: Select all

./slimechunks_stdin -s start -e end -w 64 -H 64 | apgsearch_exec_with_symmetry_slimechunks_stdin
It gets around 700sps on my computer
I searched up to 1000000.

Re: Minecraft discussion

Posted: April 12th, 2026, 2:35 pm
by I6_I6
Rule 110 emulators are often used to prove different CA Turing-complete, so (for fun I guess?) I decided to build one in Minecraft using redstone. I've seen some before, but they're all really old. This one is more up to date (and looks nicer).
Here's what it looks like:
mc_w110.png
mc_w110.png (4.72 MiB) Viewed 1038 times
World download:
W110-simulator.zip
How is this file smaller than the image??
(2.28 MiB) Downloaded 26 times
Java edition, version 26.1, should work in any version with copper bulbs.
Press the button to advance a generation and use the lever to run 1 gen/s. (It can go faster than that, but that requires a bit more wiring and I'm lazy.) Click on the note blocks to toggle the cell states.
EDIT: Never mind, after looking at it again, thanks to some last-minute changes I made, you can simply adjust the repeater in the clock to make it run as fast as 0.3s/gen. Because redstone signals aren't instantaneous, every 4 cells will be delayed 1 extra tick the further you go from the clock.

This probably isn't very impressive to all the redstone pros out there, but it's basically my first ever redstone project and I'm pretty proud of it. :D

I was inspired by these two videos:
https://www.youtube.com/watch?v=D8FMiFswZN8
https://www.youtube.com/watch?v=tPr5b_06GF4
But I built the redstone myself.

Re: Minecraft discussion

Posted: July 5th, 2026, 7:08 pm
by PC101
I did it
I finally finished the Cuboid Outpost modpack. I completed every single quest today.
https://www.curseforge.com/minecraft/modpacks/cuboid-outpost
I started my survival world in this modpack on January 12, 2026 and it's 100% complete now.

Re: Minecraft discussion

Posted: July 5th, 2026, 8:16 pm
by NNlk05
I6_I6 wrote: April 12th, 2026, 2:35 pm *snip*
You tried 0-tick repeaters? That could speed this up.
INT unit cell next?

Re: Minecraft discussion

Posted: July 6th, 2026, 1:53 am
by I6_I6
NNlk05 wrote: July 5th, 2026, 8:16 pm
I6_I6 wrote: April 12th, 2026, 2:35 pm *snip*
You tried 0-tick repeaters? That could speed this up.
[...]
That's a thing?? I didn't even know that!
Btw, I made a reduced version of that unit cell where the circuitry all fits under the black wool, but I haven't posted it yet.

Re: Minecraft discussion

Posted: July 6th, 2026, 1:58 am
by NNlk05
I6_I6 wrote: July 6th, 2026, 1:53 am That's a thing?? I didn't even know that!
https://minecraft.wiki/w/Tutorial:Instant_repeaters
Anyone else is a Minecraft seedfinder here?

I may also try to make a mod of the CGoL flower.

Re: Minecraft discussion

Posted: July 30th, 2026, 3:29 pm
by I6_I6
NNlk05 wrote: July 6th, 2026, 1:58 am
I6_I6 wrote: July 6th, 2026, 1:53 am That's a thing?? I didn't even know that!
https://minecraft.wiki/w/Tutorial:Instant_repeaters
Anyone else is a Minecraft seedfinder here?

I may also try to make a mod of the CGoL flower.
Improved version:
W110.zip
(3.48 MiB) Downloaded 1 time
It's instant now, but I used Kahyxen's rail-based instant wire instead of the instant repeater. The redstone still fits completely underneath the top layer. I also added a lever for optional wrapping at the edges, which uses more instant wires. The emulator is slower now tho, since I didn't want to take any risks with the wrapping mechanism and the instant wires are very finicky to work with. I haven't tested just how fast it can go.

Re: Minecraft discussion

Posted: August 10th, 2026, 5:01 am
by NNlk05
hotdogPi wrote: March 18th, 2021, 8:58 am What things exist in both Life and Minecraft
You forgot silverfish.

Re: Minecraft discussion

Posted: August 10th, 2026, 11:16 am
by Timelord Missionary
hotdogPi wrote: March 18th, 2021, 8:58 am What things exist in both Life and Minecraft?
  • Block
  • Boat
  • Beacon
  • Pond
  • Cap (in Minecraft, it's what the leather head armor is called, while other materials are helmets)
  • Loaf (just called bread in Minecraft, although the picture is clearly a loaf of bread
  • Beehive (as of a recent Minecraft update), and if you create one, a honey farm
  • Logic gates
  • Turing machine (limited by size in Minecraft)
  • Tick (more of a concept than a thing)
  • Clock
  • Spider
  • Swine (called pigs in Minecraft, but they're synonyms)
  • Cow
  • Rabbits/bunnies
  • Fox
  • Sometimes the XWSSes are called fish
  • Heart
  • Explosion (in OCA)
Don’t forget about the vex!
Also, in accordance with Minecraft, 204p41 could be called an evoker.

Re: Minecraft discussion

Posted: August 10th, 2026, 1:17 pm
by hotcrystal0
Timelord Missionary wrote: August 10th, 2026, 11:16 am Also, in accordance with Minecraft, 204p41 could be called an evoker.
Actually, I'm pretty sure "evoker" was the name given to the stabilization of vex.

Re: Minecraft discussion

Posted: August 10th, 2026, 1:49 pm
by Timelord Missionary
hotcrystal0 wrote: August 10th, 2026, 1:17 pm
Timelord Missionary wrote: August 10th, 2026, 11:16 am Also, in accordance with Minecraft, 204p41 could be called an evoker.
Actually, I'm pretty sure "evoker" was the name given to the stabilization of vex.
Yes, that’s correct. I was mistaken in that I thought just the ends of the vex wick would be called evokers, not the entire thing. Thanks for correcting me!