Hello, I am CobaltXII. You may know me under one of my other Internet nicknames, such as -Cobalt- or sonicxspriter. I am a computer enthusiast who enjoys writing programs (mainly in C or C++). I publish all of my creations on GitHub. On this website you will find a list of my projects. Hopefully you will find something you like.
You can contact me on Discord; my username and tag is cxii#8199.
CobaltXII/sterling | A naive pathtracer written in C++11 |
CobaltXII/minceraft | A Minecraft clone written in C++11 |
CobaltXII/Tempest | A terrain editor written in C++11 using OpenGL |
CobaltXII/C4RN4G3 | A top-down shoot 'em up written in C++11 |
CobaltXII/tarreria | A Terraria clone written in C++11 |
CobaltXII/cosmos | An OpenCL accelerated n-body simulation written in C++11 |
CobaltXII/orb | A tiny raytracer written in C++11 |
CobaltXII/bank_heist | A tower defence game written in Python |
CobaltXII/Minesweeper | A Microsoft Minesweeper clone written in C++11 |
CobaltXII/cxcc | A C compiler for x86-64 written in C++11 |
CobaltXII/logic | A logic gate simulator written in Processing |
CobaltXII/planet | A planet generator and renderer written in C++11 |
CobaltXII/boss | A MS-DOS themed text editor written in C++11 |
CobaltXII/boiler | A graphics and rasterization framework built on top of SDL2 |
CobaltXII/KrunkerToWavefront | Convert Krunker.io maps to Wavefront .obj and .mtl files |
CobaltXII/vortext | Raymarched font written in JavaScript and GLSL |
CobaltXII/ginx | Simple reverse proxy for virtual hosting written in Node.js |
CobaltXII/hostess | Hosts file manipulation tool writtehn in Node.js |
CobaltXII/img | 256-, 8- and true-color images in the terminal |
CobaltXII/cxci | A C-like interpreter written in C++11 |
CobaltXII/huffman | A Huffman compressor/decompressor written in C++11 |
CobaltXII/fractals | A GPU-accelerated fractal explorer |
CobaltXII/shaker | A GLSL sandbox for the desktop |
CobaltXII/image_utility | Image utility baseplate using stb_image_write |
CobaltXII/fastbayer8 | Fast 8-color Bayer dithering written in C++11 |
CobaltXII/pulsed_ostream | A wrapper on std::ostream that adds a delay between characters |
krunker-css | A tool to generate CSS for Krunker.io |
.../additive | Additive blending |
.../automata | Various cellular automata (with OpenMP acceleration) |
.../balls | Ball physics simulation |
.../barycentric | Triangle rasterization with vertex data interpolation |
.../cloth | Cloth simulation with Verlet integration |
.../dither | Various ordered dithering and error diffusion algorithms |
.../dos | MS-DOS-styled GUI library |
.../gl | 3-dimensional software rasterizer |
.../gradient | Gradient generation utility |
.../lights | Raycasted 2D lighting simulation |
.../mandelbrot | Mandelbrot, Julia and Burning Ship fractals |
.../matrix | Matrix (falling hacker text) simulation |
.../minecraft | Port of Notch's raymarched Minecraft demo |
.../neural | Neural network library with demonstrations |
.../normals | Normal mapping experiment |
.../optics | 2-dimensional optics simulation (reflection, refraction) |
.../raster | 3-dimensional software rasterizer |
.../sierpinski | Sierpiński triangle fractal |
.../terminal | Code page 437 font headers |
.../affine | 2-dimensional affine transformations (scale, rotate, shear) |
.../bezier | Quadratic and cubic Bézier curve rasterization |
.../blended_metaballs | Naive metaball renderer with color blending |
.../cardioid | Cardioid renderer |
.../circle_line | Circle-line intersection solver |
.../clavet | Clavet fluid simulation |
.../collisions | Static collision solver using the separating axis theorem (SAT) |
.../dla | Particle-based diffusion limited aggregation (DLA) |
.../doom_fire | Retro fire animation used in DOOM |
.../doom_fire_2 | Retro fire animation used in DOOM (custom palette) |
.../doom_fire_3 | Retro fire animation used in DOOM (with fireballs) |
.../doom_fluid | Retro fire animation used in DOOM (with fluid simulation) |
.../epicycles | Epicycle machine generator using Fourier transform |
.../fire | Old-school fire demoscene |
.../flow | Perlin noise flow field |
.../fluid | Fluid simulation (port from unidentified C source) |
.../fluid_image | Fluid simulation (port from unidentified C source) |
.../fourier_series | Fourier series visualization (natural square wave) |
.../fourier_series_saw | Fourier series visualization (natural sawtooth wave) |
.../fourier_transform | Fourier transform experiment (triangle wave) |
.../fourier_transform_2 | 2-dimensional Fourier transform experiment (Coding Train) |
.../grid_dla | Grid-based diffusion limited aggregation (DLA) |
.../heat_equation | Heat equation simulation |
.../intersection | Line-line intersection solver |
.../kernel | Image convolution via kernels (Guassian blur, sharpen, etc.) |
.../marching_squares | Marching squares metaballs |
.../multi_spatial_hash | Spatial hash grid acceleration structure |
.../n_body | N-body simulation |
.../n_body_image | N-body simulation |
.../naive_metaballs | Naive metaballs |
.../navier_squares | Marching squares Navier–Stokes fluid simulation |
.../navier_stokes | Navier–Stokes fluid simulation |
.../navier_stokes_color | Three-channel (RGB) Navier–Stokes fluid simulation |
.../navier_stokes_image | Three-channel (RGB) Navier–Stokes fluid simulation |
.../perlin | One-, two- and three-dimensional Perlin noise |
.../polar_1 | Polar coordinates experiment |
.../polar_2 | Dithering an image using variable width circles |
.../quadtree_image | Image compression using quadtrees |
.../quadtree_point | Quadtree playground |
.../raycaster_untextured | Untextured raycaster using digital differential analysis (DDA) |
.../spatial_hash | Spatial hash grid acceleration structure |
.../truetype | Truetype font rasterization |
.../verlet | Concave shape physics simulation using Verlet integration |
.../verlet_balls | Ball physics simulation using Verlet integration |
.../verlet_fluid | Fluid simulation using Verlet integration |
.../verlet_fluid_cl | OpenCL fluid simulation using Verlet integration |
.../voronoi | Naive Voronoi diagram renderer |
.../voronoi_metaballs | Voronoi-styled metaballs |
.../wave_equation | Wave equation simulation |
.../xiaolin | Xiaolin Wu's smooth line rasterization algorithms |
SYNOPSIS
A naive pathtracer written in C++11
DEPENDENCIES
Sterling requires stb_image_write (Sean T. Barrett), inih (Ben Hoyt), tinyobjloader (Syoyo Fujita), GLM, and C++11 or greater. All libraries (excluding GLM) are included in this repository.
CREDITS
Thanks to Sean T. Barrett, Ben Hoyt, Syoyo Fujita, Ben Kyd, Nimmy the Oracle, and UglySwedishFisk.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A Minecraft clone written in C++11
DEPENDENCIES
Minceraft requires C++11 or greater, OpenGL 3.3 Core or greater, GLM 0.9.9.3 or greater, libnoise 1.0.0 or greater, and SDL 2.0.9 or greater. Other dependencies such as GLAD, khrplatform, stb_image and stb_image_write (Sean T. Barrett) and FastNoise (Jordan Peck) are included in the repository.
DISCLAIMER
This project and it's author are not affiliated with or supported by Microsoft Corporation or Mojang AB. All of the files in the directory tex/ are the original work and property of Mojang AB. All other files are the original work of the author of this repository, and were not based off of the source code of Minecraft.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A terrain editor written in C++11 using OpenGL
ABSTRACT
Tempest is a terrain editor written in C++ using OpenGL. It was created mainly as an exercise to help me learn some more advanced OpenGL, such as reflections, refractions and other non-trivial effects. Currently, Tempest implements an object-oriented framework with many wrapper classes, such as cameras, cubemaps, displays, entities, framebuffers, heightmaps, lights, models, shaders, terrain, textures and water. Some of the effects that were practised when writing Tempest are water reflections, refractions, normal mapping and depth blending, terrain multi-texturing based on slope and elevation, and terrain decals using signed distance functions.
LIBRARIES
Tempest uses GLAD for generating OpenGL loaders, stb_image for loading images, stb_image_write for saving images, tinyobjloader for loading Wavefront models, FastNoise for generating coherent noise, and Dear ImGui for GUI.
CREDITS
Thanks to David Herberth, Sean Barrett, Syoyo Fujita, Jordan Peck and Omar Cornut for their libraries. Further thanks to ThinMatrix for his OpenGL tutorials which were great for starting off.
LICENSE
This repository and it's contents are licensed under the MIT License. Any libraries included in this repository are under their own licenses, which can probably be found in their subdirectory.
SYNOPSIS
A top-down shoot 'em up written in C++11
ABSTRACT
C4RN4G3 is a top-down shoot 'em up written in C++11 using OpenGL. The gameplay is oriented around shooting things to gain ammunition, health, and experience. You can find guns and powerups lying around, as well as barrels that can be destroyed to get loot. The game is singleplayer and the enemies are all bots. There's no win condition, just shoot. It also runs in the browser when compiled to Javascript/WebAssembly with Emscripten.
LIBRARIES
Tempest uses GLAD for generating OpenGL loaders, stb_image for loading images, stb_image_write for saving images and Dear ImGui for GUI. Emscripten is also used when compiling to Javascript/WebAssembly.
CREDITS
Thanks to David Herberth, Sean Barrett and Omar Cornut for their libraries.
LICENSE
This repository and it's contents are licensed under the MIT License. Any libraries included in this repository are under their own licenses, which can probably be found in their subdirectory.
SYNOPSIS
A Terraria clone written in C++11
DEPENDENCIES
Tarreria requires C++11 or greater and SDL 2.0.9 or greater. Other dependencies such as FastNoise (Jordan Peck), stb_image and stb_image_write (Sean T. Barrett) are included in the repository.
DISCLAIMER
This project and it's author are not affiliated with or supported by Re-Logic. All of the files in the directory Assets/ and all of it's subdirectories are the original work and property of Re-Logic. All other files (excluding those in the directories FastNoise/ and stb/) are the original work of the author of this repository, and were not based off of the source code of Terraria.
LICENSE
This repository and it's code contents are licensed under the MIT License. All images are the property of Re-Logic and must be used responsibly.
SYNOPSIS
A tower defence game written in Python
ABSTRACT
Bank Heist is a tower defence game. You start with a little bit of money, and you can use that money to purchase traps that automatically shoot at enemies. When you kill an enemy, you get some extra money. This continues as the game progresses and steadily gets harder. Bank Heist provides three levels that save their progress when the game is closed. The objective is to survive for 100 seconds without letting the gold core get destroyed. It was made for a computer science course and got a final mark of 99%.
LICENSE
This repository and it's code contents are licensed under the MIT License.
SYNOPSIS
An OpenCL accelerated n-body simulation written in C++11
ABSTRACT
Cosmos is an OpenCL accelerated n-body simulator. It can be used to render n-body simulations at a high speed.
DEPENDENCIES
Cosmos requires stb_image_write (Sean T. Barrett) and C++11 or greater. All libraries are included in this repository.
CREDITS
Thanks to Sean Barrett for creating stb_image_write. Thanks to the Khronos Group for creating OpenCL. Thanks to Stéfan van der Walt and Nathaniel Smith for creating the palette used in thermal_colormap.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A tiny raytracer written in C++11
ABSTRACT
Orb started out as a weekend raytracing project, but got a little bigger. It currently supports scene files, diffuse lighting, specular lighting, recursion, reflection, refraction, procedural environments, procedural texturing, supersampling, and gamma correction. Orb was originally named Orb because it could only raytrace spheres, but it can now raytrace ellipsoids, planes, capsules, cylinders and cones as well.
DEPENDENCIES
Orb requires stb_image and stb_image_write (Sean T. Barrett), inih (Ben Hoyt), tinyobjloader (Syoyo Fujita) and C++11 or greater. All libraries are included in this repository.
CREDITS
Thanks to Inigo Quilez for his great articles and intersector functions. Thanks to Cyrille Favreau for his ellipsoid intersection function. Thanks to Brook Heisler for a great tutorial on getting started with raytracing. Thanks to Sean T. Barrett, Ben Hoyt and Syoyo Fujita for their libraries.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A Microsoft Minesweeper clone written in C++11
ABSTRACT
Minesweeper is a Microsoft Minesweeper clone written in C++11. From Wikipedia: "Minesweeper is a single-player puzzle video game. The objective of the game is to clear a rectangular board containing hidden "mines" or bombs without detonating any of them, with help from clues about the number of neighboring mines in each field.".
DEPENDENCIES
Minesweeper requires stb_image (Sean T. Barrett), SDL2 and C++11. The dependency stb_image is included in this repository.
CREDITS
Thanks to Black Squirrel and Emmett N. for ripping the original sprites. Thanks to Microsoft for creating the sprites.
LICENSE
This repository and it's code contents are licensed under the MIT License. All of the sprites in this repository are property of their respective owners (probably Microsoft).
SYNOPSIS
A C compiler for x86-64 written in C++11
ABSTRACT
CXCC is a C compiler for x86-64. It supports a strict subset of the C language, and compiles code that uses 64-bit integers for all variables. It's output is unoptimized AT&T assembly, which can be assembled using any assembler. Unfortunately, it does not completely conform to any C standards.
CREDITS
Thanks to Joel Yliluoma for his "How to Create a Compiler" series, Mihai Bazon for his "How to implement a programming language in JavaScript" tutorial, Nora Sandler for his "Writing a C Compiler" series, and Matt Godbolt for his "Compiler Explorer". Extra thanks go to Ruslan Spivak and chekwob.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
An unfinished logic gate simulator written in Java using Processing
ABSTRACT
Logic is a logic gate simulator written in Java using the Processing library for rendering. It implements a node-based architecture which allows logic-gate circuits to be easily and intuitively constructed. It supports primitive gates, such as NOT, BUFFER, AND, NAND, OR, NOR, XOR and XNOR. It also supports useful input nodes, such as HIGH, LOW, TOGGLE, PULSE, CLOCK, and CONST. And for visualization purposes, it supports LAMP and HEX nodes. To keep circuits as simple as possible, it supports buses, which can be 1-, 4-, 8- or 16-bit. Unfortunately, the logic simulation is flawed and needs to be corrected.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A planet generator and renderer written in C++11
ABSTRACT
Planet is a procedural planet generator and renderer. It uses icosahedron subdivision to create an icosphere, which is perturbed by a three-dimensional noise field which creates basins, mountain ranges and water.
DEPENDENCIES
Planet requires C++11 or greater, OpenGL 3.3 Core or greater, GLM 0.9.9.3 or greater, libnoise 1.0.0 or greater, and SDL 2.0.9 or greater. Other dependencies such as GLAD, khrplatform and noiseutils are included in the repository.
LICENSE
This repository and it's contents are licensed under the MIT License.
SYNOPSIS
A MS-DOS themed text editor written in C++11
ABSTRACT
BOSS is a text editor written for fun and profit. It is not recommended to use BOSS for serious editing, although it is certainly possible, if tedious. It's source code is meant to be readable, short and functional, so that anybody who wants to modify it for themselves can do so quickly and easily.
DEPENDENCIES
BOSS requires SDL2 and C++11 or greater.
CREDITS
Thanks to Bisqwit for providing the BIOS fonts and the Mario sprite.
LICENSE
This repository and it's contents are licensed under the MIT License.