2021-09-04 18:24:16 -07:00
---
---
2021-09-04 16:58:06 -07:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
2019-07-30 14:45:36 -07:00
2021-09-04 16:58:06 -07:00
< title > GreenXenith | My pocket dimension in the vast sea that is the internet.< / title >
< meta name = "description" content = "GreenXenith's personal website and portfolio." >
< link rel = "icon" href = "img/logo.png" >
2019-07-31 10:17:52 -07:00
2021-09-04 16:58:06 -07:00
< link rel = "stylesheet" href = "icons.css" >
< link rel = "stylesheet" href = "index.css" >
< / head >
2019-07-30 14:45:36 -07:00
2021-09-04 16:58:06 -07:00
< body >
< div id = "right" >
< div id = "sticky" >
< div id = "social" >
<!-- Discord has no direct URL to add friends, so I'll provide a selectable user tag -->
< button id = "discord" class = "icon icon-social-discord" title = "Discord" style = "user-select: all;" role = "link" tabindex = 0 aria-label = "Discord (GreenXenith#3232 - Click to copy. JavaScript required.)" >
< span id = "discordcopy" class = "tooltip" > GreenXenith#3232< / span >
< / button >
< a target = "_blank" class = "icon icon-social-github" title = "GitHub" href = "https://github.com/GreenXenith" > < / a >
< a target = "_blank" class = "icon icon-social-twitter" title = "Twitter" href = "https://twitter.com/GreenXenith" > < / a >
< a target = "_blank" class = "icon icon-social-youtube" title = "YouTube" href = "https://youtube.com/channel/UCtflkJFCm51moOx9Y8p4cBA" > < / a >
< a target = "_blank" class = "icon icon-social-reddit" title = "Reddit" href = "https://reddit.com/u/GreenXenith" > < / a >
<!-- Email inserted by JavaScript to thwart scrapers -->
< a id = "email" class = "icon icon-social-envelope" title = "Email" href = "#" aria-label = "Email (JavaScript required)" >
< span id = "jswarn" class = "tooltip" > Enable JavaScript for email address< / span >
< / a >
2019-07-30 22:21:24 -07:00
2021-09-04 16:58:06 -07:00
< script >
const discord = document.getElementById("discord");
discord.style = ""; // `user-select: all` is only necessary for manual copying
discord.onclick = () => navigator.clipboard.writeText("GreenXenith#3232");
document.getElementById("discordcopy").innerHTML += " (Click to copy)";
2019-07-30 14:45:36 -07:00
2021-09-04 16:58:06 -07:00
const addr = atob("Z3JlZW54ZW5pdGhAZ21haWwuY29t"); // Email address in base64
const email = document.getElementById("email");
2019-07-30 22:21:24 -07:00
2021-09-04 16:58:06 -07:00
email.href = `${atob("bWFpbHRv")}:${addr}`; // Scheme in base64 too to deter scrapers
email.setAttribute("aria-label", `Email (${addr})`);
2019-07-30 22:21:24 -07:00
2021-09-04 16:58:06 -07:00
document.getElementById("jswarn").remove();
< / script >
< / div >
2019-07-30 22:21:24 -07:00
2021-09-04 16:58:06 -07:00
< div id = "hero" >
< div id = "logo-container" >
< img id = "logo" src = "img/logo.png" alt = "logo" >
< img id = "logo-animated" src = "img/logo.gif" alt = "logo" >
< / div >
< h1 > I am GreenXenith.< / h1 >
< h3 > (call me Alex if you like)< / h3 >
< / div >
2019-07-30 14:45:36 -07:00
2021-09-04 16:58:06 -07:00
< div id = "about" >
2021-09-04 18:24:16 -07:00
< p > Programmer for < span id = "years" > {{ site.time | date: "%Y" | minus: 2013 }}< / span > years.< / p >
2021-09-04 17:58:20 -07:00
< p > I like crafting experiences and pushing limits.< / p >
< p > I ♥ cleanliness, efficiency, and FOSS.< / p >
2021-09-04 16:58:06 -07:00
< script > document . getElementById ( "years" ) . innerHTML = new Date ( ) . getFullYear ( ) - 2013 ; < / script >
< div id = "skills" >
< div id = "languages" class = "list" >
< ul > < li > Languages< / li >
< li > Lua< / li >
< li > Rust< / li >
< li > JavaScript< / li >
< li > Python< / li >
< li > HTML5/CSS3< / li >
< li > C++< / li >
< li > Haxe< / li >
< li > Go< / li >
< / ul >
< / div >
< div id = "tools" class = "list" >
< ul > < li > Tools< / li >
< li > Git< / li >
< li > Linux< / li >
< li > Visual Studio Code< / li >
< li > NodeJS< / li >
< li > Blender< / li >
< li > GIMP< / li >
< li > Aseprite< / li >
< li > Audacity< / li >
< / ul >
< / div >
< div id = "experience" class = "list" >
< ul > < li > Experience< / li >
< li > [Contact me for resume]< / li >
<!-- This will get filled in at some later date -->
< / ul >
< / div >
< / div >
< / div >
< p id = "copyright-desktop" > Copyright © 2021 GreenXenith< / p >
< / div >
< / div >
< div id = "left" >
< div id = "projects" >
2022-01-18 18:29:02 -08:00
< div class = "project" >
< img src = "img/thumb_tetris.png" alt = "Tetris" >
< p data-header = "HLA Tetris" > Tetris written in High Level Assembly for fun. It mostly works.< / p >
< div class = "project-lang icon-lang-hla" > < / div >
< a href = "https://github.com/GreenXenith/hla-tetris/" target = "_blank" > < / a >
< / div >
2021-10-23 13:23:36 -07:00
< div class = "project" >
< img src = "img/thumb_ricketyranch.png" alt = "Rickety Ranch" >
< p data-header = "Rickety Ranch" > My submission for the 49th Ludum Dare game jam. Help an unhinged horse destroy everything. Ranked 5th for humor.< / p >
< div class = "project-lang icon-lang-lua" > < / div >
< a href = "https://github.com/GreenXenith/ricketyranch/" target = "_blank" > < / a >
< / div >
2021-09-04 16:58:06 -07:00
< div class = "project" >
< img src = "img/thumb_pycraft.png" alt = "PyCraft" >
< p data-header = "PyCraft" > A blocky game (renderer) implemented in Pygame. Because why not?< / p >
< div class = "project-lang icon-lang-python" > < / div >
< a href = "https://github.com/GreenXenith/pycraft" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_zoria.png" alt = "Zoria" >
< p data-header = "Zoria" > An infinite dungeon-crawler roguelike written in Pygame. Collect coins, slash slimes, and dive deeper.< / p >
< div class = "project-lang icon-lang-python" > < / div >
< a href = "https://github.com/GreenXenith/zoria" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_turtlecraft.png" alt = "TurtleCraft" >
< p data-header = "TurtleCraft" > An isometric block game chunk renderer written with the Python turtle. Just for fun.< / p >
< div class = "project-lang icon-lang-python" > < / div >
< a href = "https://github.com/GreenXenith/turtlecraft" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_minetestbot.png" alt = "MinetestBot" >
< p data-header = "MinetestBot" > A Discord utility bot for Minetest-related things.< / p >
< div class = "project-lang icon-lang-nodejs" > < / div >
< a href = "https://github.com/MinetestBots/minetestbot" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_minetest_tools.png" alt = "Minetest Tools" >
< p data-header = "Minetest Tools" > An extension for Visual Studio Code with various Minetest development utilities (autocompletion, boilerplates, etc).< / p >
< div class = "project-lang icon-lang-javascript" > < / div >
< a href = "https://github.com/GreenXenith/minetest-tools" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_ironrift.png" alt = "Ironrift" >
< p data-header = "Ironrift" > A battlefield-style first-person shooter written in Rust with Bevy. This was made as an experiment, it barely works.< / p >
< div class = "project-lang icon-lang-rust" > < / div >
< a href = "https://github.com/GreenXenith/ironrift" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_minetest_mods.png" alt = "Minetest Mods" >
< p data-header = "Minetest Mods" > Over 40 mods I've written for the Minetest game engine.< / p >
< div class = "project-lang icon-lang-lua" > < / div >
< a href = "https://github.com/search?q=user%3AGreenXenith+language%3ALua&type=Repositories" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_blender_rigs.png" alt = "Blender Rigs" >
< p data-header = "Blender Rigs" > Various models I've created and rigged in Blender.< / p >
< div class = "project-lang icon-lang-blender" > < / div >
< / div >
< div class = "project" >
< img src = "img/thumb_blender_robot.png" alt = "Robot Render" >
< p data-header = "Robot Render" > One of my first serious Blender projects.< / p >
< div class = "project-lang icon-lang-blender" > < / div >
< a href = "img/full_blender_robot.png" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_blender_desk.png" alt = "Desk Render" >
< p data-header = "Desk Render" > One of my first forays into photorealistic rendering.< / p >
< div class = "project-lang icon-lang-blender" > < / div >
< a href = "img/full_blender_desk.png" target = "_blank" > < / a >
< / div >
< div class = "project" >
< img src = "img/thumb_website.png" alt = "greenxenith.com" >
< p data-header = "greenxenith.com" > This website!< / p >
< div class = "project-lang icon-lang-html5" > < / div >
< a href = "https://github.com/GreenXenith/greenxenith.github.io" target = "_blank" > < / a >
< / div >
< / div >
< a id = "totop" href = "#top" > Back to Top< / a >
< / div >
< p id = "copyright-mobile" > Copyright © 2021 GreenXenith< / p >
< / body >
2019-07-30 14:45:36 -07:00
< / html >