./NathanielWhite/

Copied natelwhite01@gmail.com to clipboard!

Copied blackorchard to clipboard!

academic-history/

missouri-state-university/

I attended MSU for two and a half years. Most of that time was spent on a music education degree with tuba as my primary instrument. While I didn't finish the degree, most of my first two years were spent on music courses, rather than general education requirements (ask my advisor, I still don't know why). In those courses, I learned how to play trumpet, french horn, baritone, and piano as well as how to use music theory to play sheet music more effectively. In summer 2021, I traveled to over ten states performing the Troopers Drum and Bugle Corps - check out this video!

After the revelation that performing arts are not for me (performance anxiety), I changed to a bachelor's in computer science. My time at this university post major change was short lived due to all the challenges that Covid brought to the school. By fall of 2022, I moved on to Southern New Hampshire University.

I have many great memories from this institution. Playing in massive performance halls, hearing the most inspiring melodies. Truly, words do not suffice.

southern-new-hampshire-university/

I currently attend SNHU pursuing a Computer Science Bachelor's with a concentration in project management. At the time of writing (01/07/25), my current GPA is 3.571. I am projected to graduate within a year and a half.

Course Completion

  • Software:
    • Introduction to Scripting - IT140
    • Foundations in Application development - IT145
    • Programming Languages - CS210
    • Data Structures and Algorithms - CS218
    • Introduction to Database Environments - DAD220
    • Operating Platforms - CS230
    • System Analysis and Design - CS255
    • DSA: Analysis and Design - CS300
    • Software Development Lifecycle - CS250
    • Software Security - CS305
    • Software Test, Automation and Quality Assurance - CS320
    • Computational Graphics and Visualization - CS330
    • Client/Server Development - CS340
    • Mobile Architecture & Programming - CS360
    • Current/Emerging Trends in CS - CS370
    • Full Stack Development 1 - CS465
  • Project Management
    • Managiing and Leading in Business - BUS210
    • Project Mangement - QSO340
    • Resource Estimate and Schedule - QSO355
    • Topics in Project Management - QSO440
  • Math:
    • Discrete Mathematic - MAT230
    • Precalculus with Limits - MAT140
    • Calculus 1: Single-Variable Calculus - MAT225
    • Applied Statistics for STEM - MAT243
    • Applied Linear Algebra - MAT350

projects/

palettable/

showcase

project background

  • I've done many iterations of this project. Originally in Python (Tkinter), then in HTML/CSS/JS (no libs), and now in C++ (Dear ImGui). I'm still tinkering with this project in between schoolwork, but I don't plan to work on it for much longer. The only reason I've done this project so many times is because I find it helpful to learn my way around a GUI framework/library.
  • My main interest in Dear ImGui is for a future 2d game engine. Considering the intuitive nature of Object Oriented Programming in a video game context, I tried to built this project with those principals in mind. As for how quickly I was able to learn my way around this library:
    • A few hours to build the demo project that comes in the Dear ImGui repo.
    • A day to build the functional requirements of the app:
      • display colors,
      • assign displayed number of rows/columns,
      • and edit colors).
    • A day to separate the App, Palette, and Color components of the logic.
  • Ultimately, I do not have the time nor capability of building a 2d engine without the aid of a more advanced library such as raylib. Regardless, I recognize that I'll never build one if I don't start poking around different libraries to see how they could be used for game engine development.
  • I appreciate the simplicity of Dear ImGui. I'm sure there are much more advanced things you can do with it, but it really is simple to get a window going and start adding widgets. The one qualm I have is the lack of a layout manager. I tried to use the docking branch of the repo, but I found it to be much more convoluted than I feel it should be.

build instructions

  1. Install SDL2 development libraries:
    • Windows systems: see this step-by-step article.
    • sudo apt install libsdl2-2.0-0
    • sudo dnf install SDL2-devel
    • sudo pac -S sdl2
  2. Clone the repo into a local directory:
    • git clone https://github.com/natelwhite/Palettable.git
  3. Generate the Cmake build system:
    • cmake -B build
  4. Build the project:
    • cmake --build build
  5. The Palettable executable should now be in the build directory.

draw-machine/

showcase

project background

  • After seeing a 3Blue1Brown (YouTube) video on the discrete fourier transform, I wanted to implmement it myself.
    • I followed a CodingTrain (YouTube) video where he implemented a drawing machine in javascript using the algorithm.
    • I didn't want it to be too easy though, so I opted to use C++ and SDL2, much lower-level than javascript.
    • Here's some functionality I added that wasn't in the original
      1. A single fourier series draws both x and y dimensions, rather than one for each axis.
      2. Move to a specified frame.
      3. Draw polygons with any number of sides rather than circles.
      4. Change color of lines, polygons, and background.
      5. Start/Stop animation at any time.
      6. Clear drawn path at any time.

build instructions

  1. Install SDL2 development libraries:
    • Windows systems: see this step-by-step article.
    • sudo apt install libsdl2-2.0-0
    • sudo dnf install SDL2-devel
    • sudo pac -S sdl2
  2. Clone the repo into a local directory:
    • git clone https://github.com/natelwhite/DrawMachine.git
  3. Generate the Cmake build system:
    • cmake -B build
  4. Build the project:
    • cmake --build build
  5. The DrawMachine executable should now be in the build directory.