CivArchive
    ← All articles
    Published April 22, 2026by MiniI3

    Surya_Dex_Lab

    100 views2 reactions0 comments on CivitAI1 collected
    dexollamaandroidpokemontool guideintelvino

    "If it splashes, it's a Magikarp. If it renders, it's a Gyarados."

    Creator of the Tech-Dex Kanto, a hardware-centric reinterpretation of the original 151. I specialize in high-efficiency SD 1.5 assets, optimized for users who—like me—fight for every MB of VRAM.

    Working with OpenVINO, INT8 Quantization, and Vulkan shaders on mobile-class hardware. My models are hardened binaries designed to survive the most restrictive environments.

    Pact with Luna: Quality over quantity. Silence over noise.

    #--- DATA START ---

    |001|Bulbasaur|Grass|Natural Bloatware. Comes with a pre-installed backpack that cannot be uninstalled.|

    |002|Ivysaur|Grass/Poison|Partially installed firmware. It has grown leaves, but the kernel flowers haven’t finished compiling yet.|

    |003|Venusaur|Grass/Poison|Production server with years of uptime. An entire ecosystem of dependencies (flowers) is growing on top. Stable, but heavy.|

    |004|Charmander|Fire|CPU without a heatsink. If the flame flickers, the kernel is in a state of panic.|

    |005|Charmeleon|Fire|Intermediate warm-up phase. The i3 fan is starting to sound like a jet taking off.|

    |006|Charizard|Fire/Flying|Looks like an epic dragon, but it's just a lizard with an overclocked flamethrower. Pure aesthetics, but it heats the room to 1000°C|

    |007|Squirtle|Water|External liquid cooling system. The Adreno 618’s best friend.|

    |008|Wartortle|Water|Intermediate buffer. Developed a shell to protect against DDoS attacks and coffee spills.|

    |009|Blastoise|Water|Dual-cannon water cooling. The terror of memory leaks. Injects packets under high pressure.|

    |010|Caterpie|Bug|Source code. Just a worm waiting to become a .exe executable someday.|

    |011|Metapod|Bug|A process in D state (uninterruptible sleep). Doesn't respond to kill -9. Currently hardening the binary.|

    |012|Butterfree|Bug/Flying|A GUI that finally loads. Flies smoothly, but if there's lag, it releases screen-flicker dust.|

    |013|Weedle|Bug/Poison|A single-line .sh script that looks harmless until you check the execution permissions.|

    |014|Kakuna|Bug/Poison|Compiling... Do not interrupt the process or the binary will be corrupted. Hardened data structure.|

    |015|Beedrill|Bug/Poison|An SQL injection script with a real temper. It stings where it hurts most: the DB.|

    |016|Pidgey|Normal/Flying|Nature's 'Ping'. Hovers over servers searching for a signal.|

    |017|Pidgeotto|Normal/Flying|Mid-range signal repeater. A bridge between the Surya and the NVMe's Alpine.|

    |018|Pidgeot|Normal/Flying|Symmetrical fiber optics. Sends and receives packets at Mach 2 with zero frame loss.|

    |019|Rattata|Normal|The 'top' process that's always there, consuming 1% of CPU without doing anything useful.|

    |020|Raticate|Normal|A zombie process biting into system resources. Impossible to ignore once it starts gnawing at the Swap.|

    |021|Spearow|Normal/Flying|A lost packet in the ping. Small, noisy, and constantly returning with high latency.|

    |022|Fearow|Normal/Flying| Long-range antenna with modified firmware. Picks up signals even from the neighbor's network.|

    |023|Ekans|Poison|Python 2.7. Still alive in the system even though no one wants to touch its code anymore. 🐍|

    |024|Arbok|Poison|Python 3.12. Bigger, faster, and capable of paralyzing your RAM with a single infinite loop.|

    |025|Pikachu|Electric|External battery with a bad attitude. High risk of short-circuiting the USB-C port.|

    |026|Raichu|Electric|High-voltage transformer. If you don't use a certified cable, it’ll fry your Thunderbolt port.|

    |027|Sandshrew|Ground|.tar.gz compression algorithm. Coils into itself to take up minimum space on the NVMe.|

    |028|Sandslash|Ground|Encrypted file system. Its spikes are the security layers that shred any intrusion attempt.|

    |029|Nidoran♀|Poison|Standard user with restricted permissions. Looks harmless until she tries a sudo.|

    |030|Nidorina|Poison|Junior SysAdmin. Very aggressive with logs, but still learning how to compile her own poison.|

    |031|Nidoqueen|Poison|Hardened Surface layer. Optimized rendering to ensure no external attack corrupts the display buffer.|

    |032|Nidoran♂|Poison|Uncalibrated Touch driver. So sensitive that any system contact triggers a poisonous Interrupt Request (IRQ). ⚡|

    |033|Nidorino|Poison|Binary with SUID permissions. One false move and it injects a poisonous shell into root.|

    |034|Nidoking|Poison/Ground|The ultimate Superuser. Controls both hardware (Ground) and software (Poison). When he runs sudo, the kernel trembles|

    |035|Clefairy|Normal|Legacy script. Nobody knows what it does, but if you delete it, the system loses its "magic."|

    |036|Clefable|Normal|The stable version of the legacy script. Low footprint and highly resistant to Fighting-type bugs.|

    |037|Vulpix|Fire|Low-power GPU. Small and elegant, ideal for rendering light interfaces without burning the chassis.|

    |038|Ninetales|Fire|Six tails of pure smoothness. The most beautiful screensaver in the Lab, but don't be fooled: its Thermal Processing Unit is powerful.|

    |039|Jigglypuff|Normal/Fairy|Forced hibernation script. If it starts singing, the system enters Snooze mode.|

    |040|Wigglytuff|Normal/Fairy|Expanded RAM. It's so elastic it absorbs any load spike, but if it hits the limit, the system explodes.|

    |041|Zubat|Poison/Flying|An error notification that won't stop popping up in the logs. dmesg is flooded with them.|

    |042|Golbat|Poison/Flying|A persistent memory leak. It feeds on your clock cycles in the background.|

    |043|Oddish|Grass/Poison|Maintenance script that only runs at midnight. Looks like a weed in the crontab.|

    |044|Gloom|Grass/Poison|Heap memory leak. Its smell is the result of leaving processes open for too long. Needs an urgent system trim. 🍃💨|

    |045|Vileplume|Grass/Poison|A "stable" system update that is actually a petal-bomb of bugs. Visually stunning, but lethal for stability.|

    |046|Paras|Bug/Grass|Biological Rootkit. The fungus has hijacked the kernel and now manages all the host's system calls. 🍄👾|

    |047|Parasect|Bug/Poison|Total Kernel Panic. The fungus no longer just controls the process; it has overwritten the BIOS. The system is no longer yours.|

    |048|Venonat|Bug/Poison|A proximity sensor full of static. Its eyes are LEDs blinking without any logic.|

    |049|Venomoth|Bug/Poison|An exploit flying over the RAM, releasing spores of data corruption.|

    |050|Diglett|Ground|A process running at the Hardware Abstraction Layer (HAL). You only see the head, but it's hardwired to the motherboard. 🏗️|

    |051|Dugtrio|Ground|A cluster of three Raspberry Pis buried in the rack. They work in tandem just to stay alive.|

    |052|Meowth|Normal|The original Crypto Miner. Its 'Pay Day' process farms resources non-stop.|

    |053|Persian|Normal|Premium UI with Dark Mode. Elegant, fast, and with pay-per-use claws.|

    |054|Psyduck|Water|A Segmentation Fault. It stares into the void with a headache until the process finally explodes.|

    |055|Golduck|Water|A kernel that has finally stopped having headaches (panics) and now swims smoothly through the buffer.|

    |056|Mankey|Fighting|The Thermal Engine during an overclock. It’s just one degree away from triggering Thermal Throttling and going haywire. 🌡️💢|

    |057|Primeape|Fighting|The system after ignoring 50 temperature alerts. It’s one kill -9 away from picking a fight with the RAM.|

    |058|Growlithe|Fire|The Governor set to "Performance" mode. Always ready to push maximum Hz, with the loyalty of a watchdog that never lets the system hang. 🐕🔥|

    |059|Arcanine|Fire|Legendary thermal processing power. A loyal guardian, much like the team we've built here in the CachyOS lab. Always in sync. 🔋🔥|

    |060|Poliwag|Water|A data stream in the FrameBuffer. Its spiral is the loading symbol of a Surface that never finishes rendering. 🌀🐚|

    |061|Poliwhirl|Water/Psychic|A while true loop. It looks like it's making progress, but it's just burning clock cycles in the same spot.|

    |062|Poliwrath|Water/Fighting|The data stream that finally broke the loop. Now it hits the hardware with brute force|

    |063|Abra|Psychic|Teleport expert. Has the uncanny ability to vanish as fast as our Alpine keys in the Lab. An emotional segmentation fault. 🧠🚫|

    |064|Kadabra|Psychic|Holds a silver spoon to channel energy, just as we need coffee to channel CachyOS code. Attempting to crack the hash of the lost key... Access denied. ☕🧠|

    |065|Alakazam|Quantum CPU with two spoons. Makes me feel like a 1-euro calculator.|

    |066|Machop|Fighting|An unoptimized C script. Small, but capable of moving heavy pointers if you give it enough time.|

    |067|Machoke|Fighting|A hardware accelerator. Forces rendering through raw brute strength, even if the silicon starts showing its veins.|

    |068|Machamp|Fighting|Brute-force script. Only knows how to pound the sudo command until the system finally gives in.|

    |069|Bellsprout|Grass/Poison|A thin antenna cable. Bends with the wind but injects poisonous signals into the modem.|

    |070|Weepinbell|Grass/Poison|A fan that sucks in hot air but only spits out acidic error logs.|

    |071|Victreebel|Grass/Poison|A Honeypot. Attracts hackers with its sweet scent and then devours their root processes.|

    |072|Tentacool|Water/Poison|A malicious network packet floating in the LAN. If you touch it, it injects a trojan.|

    |073|Tentacruel|Water/Poison|A DDoS attack with 80 tentacles blocking the router.|

    |074|Geodude|Rock/Ground|A first-gen SSD. Slow and heavy, but can withstand shocks that would kill a traditional HDD.|

    |075|Graveler|Rock/Ground|An external HDD making weird noises. It spins and spins, but sometimes it gets stuck.|

    |076|Golem|Rock/Ground|A legacy database server. A massive stone monolith that nobody can seem to move.|

    |077|Ponyta|Fire| A mobile processor in the testing phase. It runs fast, but the chassis is burning to the touch. 🐎|

    |078|Rapidash|Fire|An "Adreno 618 with unlocked voltages." 🐎⚡|

    |079|Slowpoke|Water/Psychic|Internet Explorer / Edge. Takes three days to realize the kernel has panicked.|

    |080|Slowbro|Water/Psychic|UA system with a massive bottleneck. The CPU has already finished the task, but the HDD is still thinking about what to do.|

    |081|Magnemite|Electric/Steel|A poorly connected USB fan. Generates EMI (Electromagnetic Interference) on the proximity sensor.|

    |082|Magneton|Electric/Steel|A misconfigured server cluster. They generate so much induction they wipe nearby hard drives.|

    |083|Farfetch'd|Normal/Flying| A technician who always carries a spare cable (his leek). The only one who knows how to fix the rack when it fails.|

    |084|Doduo|Normal/Flying|A Dual-Core processor. Both cores try to coordinate thread handling, but sometimes they peck at each other.|

    |085|Dodrio|Normal/Flying|A 3-core CPU. The third core is always a bit lost, but it helps keep the system from hanging completely.|

    |086|Seel|Water|A data packet encrypted with an SSL layer. White and pure, sliding through port 443.|

    |087|Dewgong|Water/Ice|A server in the Arctic. Leverages the climate to keep kernel temperatures below zero.|

    |088|Grimer|Poison|A memory leak crawling through the heap. Starts small, but ends up staining the entire Swap.|

    |089|Muk|Poison|The result of not clearing logs for three years. An amorphous mass of corrupt data that has developed its own consciousness.|

    |090|Shellder|Water|A USB port with a cover. Unless forced, it keeps the system closed to suspicious peripherals.|

    |091|Cloyster|Water/Ice|Hardware Firewall with 256-bit encryption. If you don't have the symmetric key, its ice spikes will block Port 80 forever.|

    |092|Gastly|Ghost|Orphan process. A gas cloud with no defined PID or root.|

    |093|Haunter|Ghost/Poison|The Bootstrap Ghost. An entity floating among temp files; if you touch its config, it corrupts the environment and laughs at your $PATH.|

    |094|Gengar|Ghost|Rendering error with a smile. Drains battery even with the screen off.|

    |095|Onix|Rock/Ground|A 50-meter CAT 6 network cable. Rigid and hard to thread through conduits, but a solid backbone for the Lab.|

    |096|Drowzee|Psychic|Telemetry script analyzing your usage habits. Watches you while you sleep (or while the PC is idle).|

    |097|Hypno|Psychic|Social engineering attack. Convinces you that its security certificate is valid when it definitely isn't. 😵‍💫|

    |098|Krabby|Water|Port Controller. Its pincers snap unauthorized connections instantly.|

    |099|Kingler|Water|The Port Controller after an overclock. Its pincers now have a 100Gbps bandwidth.|

    |100|Voltorb|Electric|A capacitor about to burst. If you touch the chassis, there's a 50% chance of Self-Destruct.|

    |101|Electrode|Electric|A swollen laptop battery. A tactile countdown to a total physical format.|

    |102|Exeggcute|Grass/Psychic|A process array. If you kill one, the other five continue executing the task in parallel.

    |103|Exeggutor|Grass/Psychic|A process tree (pstree) that grew too large. Code branches everywhere and a very deep root.

    |104|Cubone|Ground|An orphan script. Its parent process was annihilated with kill -9 and now it wanders the terminal alone. 🦴

    |105|Marowak|Ground An orphan script that recovered its source code. Now uses a silicon bone to defend the root directory.

    |106|Hitmonlee|Lucha|Boot optimization program. Kicks slow processes so the kernel starts in under 2 seconds.

    |107|Hitmonchan|Lucha|Fast-response antivirus. Launches scan bursts that leave no malware standing.

    |108|Lickitung|Normal|Biological magnetic card reader. Its tongue is the weirdest data cable I’ve ever seen.

    |109|Koffing|Poison A poorly optimized mining process that fills the system with "smoke" (junk logs) and overheats the CPU.

    |110|Weezing|Poison The smoke coming out of the Snapdragon when you try to compile libggml-vulkan.so with -j8.

    |111|Rhyhorn|Rock/Ground A 10TB mechanical HDD. Heavy, noisy at startup, and lacks agility—but once it starts writing data, nothing stops it. 🧱

    |112|Rhydon|Rock/Ground A RAID 0 of HDDs. Raw write power, but if one fails, it’s total panic.

    |113|Chansey|Normal Redundant Backup system. Always carries a safety copy (its egg) in case the main system suffers a critical "faint." 🥚🩹

    |114|Tangela|Grass The actual state of our rack's backside. A mess of Jack, USB, and network cables that somehow works. 🕸️🔌

    |115|Kangaskhan|Normal|A Docker container. Carries its microservice (the child) protected within its own isolated environment.

    |116|Horsea|Water|A small packet injector. Shoots code ink to mask its IP on the network.

    |117|Seadra|Water|The injector has evolved. Now uses encryption scales that make its network traffic undetectable.

    |118|Goldeen|Water|An elegant screensaver flowing in the framebuffer, yet consuming GPU cycles for no reason.

    |119|Seaking|Water|The same screensaver in Ultra mode. Its water reflections are the Adreno 618’s nightmare.

    |120|Staryu|Water|Miscalibrated ambient light sensor. Its core blinks red when the CPU hits 90%.

    |121|Starmie|Water/Psychic|Perfectly aligned satellite antenna. Receives data from the stars (or the Surya’s GPS) with zero latency.

    |122|Mr. Mime|Psychic|A moody Window Manager. Creates invisible walls on the desktop where the mouse gets stuck.

    |123|Scyther|Bug/Flying|A frequency-cutting tool (Low Pass Filter). Its blades split audio waves with microsecond precision in Audacity. ✂️🎶

    |124|Jynx|Ice/Psychic|A UI with too many unnecessary animations. Freezes if you try to navigate too fast.

    |125|Electabuzz|Electric|A UPS (Uninterruptible Power Supply). Gets nervous and starts beeping when it detects a voltage drop.

    |126|Magmar|Fire|A 14th Gen Intel CPU without a power limiter. Basically a space heater that also does math.

    |127|Pinsir|Bug|Multi-threaded compression tool. Grips data with its pincers until the .7z file can’t take any more.

    |128|Tauros|Normal|A stress-ng script. Runs through all 8 cores of the Surya, ramming into the RAM until something breaks.

    |129|Magikarp|Water|Looks like it’s just splashing around, but it’s optimized code waiting for its moment. An imminent evolution. 🌊🔥

    |130|Gyarados|Water/Flying|The moment libggml-vulkan.so finally compiles and the Adreno 618 wakes up. From splashing to demolishing tokens per second.

    |131|Lapras|Water/Ice|Elegant and secure navigation system. Its song calms the kernel and prevents panics during data storms.

    |132|Ditto|Normal|chmod 777. Tries to be everything to everyone, but ends up being a security hole with eyes.

    |133|Eevee|Normal|Polymorphic binary. Can mutate into eight different drivers depending on the patch you apply.

    |134|Vaporeon|Water|Modular liquid cooling. Its molecular structure is indistinguishable from the coolant itself.

    |135|Jolteon|Electric|A sysadmin's dream: an Ethernet cable with zero interference and lightning-fast transmission.

    |136|Flareon|Fire|Thermal overclocking with fur.

    |137|Porygon|Normal|Pure code. The first .exe with consciousness.

    |138|Omanyte|Rock/Water|Legacy kernel driver recovered from magnetic tape. Fossilized code, but surprisingly efficient. 🐚📜

    |139|Omastar|Rock/Water|The updated fossil driver. We've added tentacles to manage multiple modern execution threads.

    |140|Kabuto|Rock/Water|ASM (Assembly) binary recovered from a 3.5" floppy. Hard, primitive, and extremely efficient.

    |141|Kabutops|Rock/Water|ASM code optimized for ARM64. Its code-blades cut through clock cycles with surgical precision.

    |142|Aerodactyl|Rock/Flying Legacy kernel with real-time patches. A low-latency predator flying over the hardware.

    |143|Snorlax|Normal|Hibernation mode active. Not responding to pings. Occupies the entire Swap and refuses to swapoff.

    |144|Articuno|Ice/Flying|Liquid Nitrogen cooling system. The absolute King of Overclocking.

    |145|Zapdos|Electric/Flying|The Lab’s power grid server. If it flaps, a voltage spike blows every fuse.

    |146|Moltres|Fire/Flying|8K rendering process. Elegant, but makes the data center feel like an oven.

    |147|Dratini|Dragon|A 10-line Python script. Elegant, clean, and with infinite scalability potential.

    |148|Dragonair|Dragon|The script has grown and now manages the Lab's API. Flows with zero latency through the NVMe lanes.

    |149|Dragonite|Dragon/Flying|The final distributed system. Capable of orbiting all servers in a second to deliver packets on time.

    |150|Mewtwo|Psychic|Created through genetic manipulation; possesses a frozen heart and mental power surpassing any CPU. The absolute SELinux.

    |151|Mew|Psychic|The original source code. The .src of life.

    DATA SCRIPT

    import sys

    import os

    import subprocess

    import re

    import time

    # --- CONFIGURACIÓN ---

    DIRECTORIO_ACTUAL = os.path.dirname(os.path.abspath(__file__))

    ARCHIVO_TOMO = os.path.join(DIRECTORIO_ACTUAL, "Tomo_PkKanto.txt")

    MODELO_OLLAMA = "frankie"

    def limpiar_texto(texto):

    """Limpia basura pero MANTIENE el ritmo para el TTS."""

    if not texto: return ""

    # 1. Eliminar basura de modelos y tags

    ansi_escape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]')

    texto = ansi_escape.sub('', texto)

    tokens_sucios = ["<start_of_turn>", "<end_of_turn>", "model", "system", "<|end_of_text|>", "<|user|>", "<|assistant|>"]

    for token in tokens_sucios:

    texto = texto.replace(token, "")

    # 2. Corregir el "tartamudeo" de Phi (Repeticiones de frases adyacentes)

    # Si Phi dice "Es un pokemon fuerte. Es un pokemon fuerte.", esto lo limpia.

    texto = re.sub(r'(.+?)\1+', r'\1', texto)

    # 3. MANTENER COMAS Y PUNTOS (Crucial para gTTS)

    # Solo quitamos símbolos raros que el TTS lee como "almohadilla" o "asterisco"

    texto = re.sub(r'[|*#>\-_~`°¡!¿?]', ' ', texto)

    # 4. Normalización de espacios y saltos de línea

    # No los borramos todos, convertimos saltos en puntos si no hay puntuación

    texto = texto.replace('\n', '. ').replace('\r', '. ')

    # 5. Colapsar espacios y asegurar que no haya dobles puntos

    texto = " ".join(texto.split())

    texto = texto.replace('..', '.').replace('.,', ',')

    return texto.strip()

    def comprobar_internet():

    try:

    subprocess.run(["ping", "-c", "1", "-W", "1", "8.8.8.8"],

    stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=True)

    return True

    except:

    return False

    def hablar_hibrido(texto):

    """Voz optimizada para no sonar como un robot ametralladora."""

    t_audio = limpiar_texto(texto)

    if not t_audio or len(t_audio) < 3: return

    if comprobar_internet():

    try:

    print("🌐 Luna procesando voz...")

    txt_temp = "/tmp/luna_text.txt" if os.path.exists("/tmp") else "luna_text.txt"

    mp3_temp = "/tmp/luna_voice.mp3" if os.path.exists("/tmp") else "luna_voice.mp3"

    with open(txt_temp, "w", encoding="utf-8") as f:

    f.write(t_audio)

    # Usamos gtts-cli pero bajamos un poco la velocidad si Phi va muy rápido

    subprocess.run(["gtts-cli", "--lang", "es", "--file", txt_temp, "--output", mp3_temp],

    stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=True)

    if os.path.exists(mp3_temp):

    # Bajamos la velocidad de 1.30 a 1.20 para que las comas se noten más

    subprocess.run(["mpv", mp3_temp, "--really-quiet", "--speed=1.20"], check=True)

    os.remove(mp3_temp)

    os.remove(txt_temp)

    return

    except Exception as e:

    print(f"⚠️ Fallo en gTTS: {e}")

    # Fallback Offline

    try:

    subprocess.run(["termux-tts-speak", t_audio], check=True)

    except:

    print("🤫 Silencio.")

    def consultar_frankie(query):

    if not os.path.exists(ARCHIVO_TOMO): return "Tomo extraviado."

    registro = None

    query_clean = query.strip().lower()

    with open(ARCHIVO_TOMO, 'r', encoding='utf-8') as f:

    for linea in f:

    if not linea.startswith('|'): continue

    p = [part.strip() for part in linea.split('|') if part.strip()]

    if len(p) >= 2:

    if query_clean in [p[0].lower().lstrip('0'), p[1].lower()]:

    registro = linea.strip()

    break

    if not registro: return f"El dato {query} no existe en el registro de Kanto."

    # CAMBIO CLAVE: Le damos una instrucción de formato a Phi para que no se pierda

    prompt_minimo = (

    f"Actúa como la Pokédex. Sé breve y usa comas. "

    f"DATO TÉCNICO: {registro}. RESUMEN:"

    )

    try:

    # Mantenemos el -j1 implícito por la carga de Ollama en el Surya

    process = subprocess.Popen(["ollama", "run", MODELO_OLLAMA],

    stdin=subprocess.PIPE, stdout=subprocess.PIPE,

    stderr=subprocess.PIPE, text=True, encoding='utf-8')

    stdout, = process.communicate(input=promptminimo, timeout=60)

    return stdout.strip()

    except Exception:

    return "Conexión con Frankie interrumpida."

    if name == "__main__":

    if len(sys.argv) < 2:

    print("\n🔎 Uso: dex <nombre_o_numero>")

    else:

    respuesta = consultar_frankie(" ".join(sys.argv[1:]))

    print(f"\n📟 Dex: {respuesta}\n")

    hablar_hibrido(respuesta)