claytonhickey.me
Open in
urlscan Pro
2606:4700:3030::ac43:9098
Public Scan
Submitted URL: http://claytonhickey.me/
Effective URL: https://claytonhickey.me/
Submission: On November 02 via api from US — Scanned from DE
Effective URL: https://claytonhickey.me/
Submission: On November 02 via api from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
Clayton Hickey Home Blog More Nodes RSS CLAYTON HICKEY I'm currently studying Bioengineering and Computer Science at the University of Pennsylvania. I'm currently developing a language learning app, Tutor Engine. The app's development is being documented on my blog. Below you can find an abbreviated history of my over 11 years of programming projects. EXPERIENCES PROJECTS WGPU GAME OF LIFECODEDOWNLOAD Started: 13. Juli 2022; Completed: 13. Juli 2022 skills: Rust, BUI (my core gui lib), BUI Basic (my gui framework), WGPU, WGSL, compute shaders, desktop software, Windows software, Linux software, Winit Conway's Game of Life computed and rendered on the GPU using WGPU. Written with my own gui framework, BUI Basic. BUI BASICCODE Started: 22. Februar 2022 skills: Rust, BUI (my core gui lib), GUI framework design, cross-platform (mobile, desktop, web) Simplified wrapper around bui for building guis without sacrificing any performance. Won 1st place wth a perfect score at the PJAS state competition. I'm a little bit disenchanted with this. I think there will need to be innovations (that I'm working on) in programming languges to actually achieve the ideal this project seeks. Note: Latest update is not pushed BUICODE Started: 13. August 2021 skills: Rust, WGPU, WGSL, render shaders, cross-platform (mobile, desktop, web) A performant WGPU (currently - plan to support multiple backends) GUI rendering library. Note: Latest update is not pushed. MICRO VSRGCODESHOWCASE Started: 12. November 2021; Completed: 28. November 2021 skills: Rust, microcontrollers, Raspberry Pi, dynamic parsing A rhythm game for Raspberry Pi - specifically the Raspberry Pi 3B+. Imports 4k osu!mania maps (no hold notes). Single player (2 player may be added). I completed this project for a Raspberry Pi 3. This game is meant to be played with wheeled robots hitting the notes and sacrifices were made for that. However, it can be easily modified to fit one's requirements. The game dynamically reads and parses osu!mania (a popular and now open source rhythm game for desktop operating systems) set/map files that the user can choose from to play on startup. CLAYTONHICKEY.MELIVE見るCODE Started: 15. November 2023; Completed: 16. November 2023 skills: websites, JavaScript, HTML, CSS, web hosting, Linode, Nginx, DNS, Cloudflare, Nix, static sites, Web Components A portfolio website (this website) created in raw HTML, CSS, and JS using web components CLAYTONHICKEY.ME (OLD)CODE Started: 5. Juli 2021; Completed: 5. Juli 2021 skills: websites, Rust, Maud, static sites, HTML, CSS, web hosting, Linode, Nginx, DNS, Cloudflare, Nix The old version of this site was generated statically with Rust and the Maud templating engine. Deployed with Nix. WORD SEARCH SOLVER OCRLIVE Completed: 1. Februar 2019 skills: websites, web apps, algorithms, OCR, JavaScript, p5.js, HTML, CSS A tool to solve word searching using OCR which allows users to upload pictures of word searches so they can solve them quickly. Developed because I am very bad at word searches. CLAYTONDOESTHINGS.XYZLIVECODE skills: Rust, Rocket.rs, fullstack web, DNS, Cloudflare, web hosting, Linode, Linux, Ubuntu, Nginx, server-side rendering, web templating, Maud, Google SEO, Bing SEO, dynamic sitemap, HTML, CSS, websites My personal website to show off projects. Has gone through many rewrites. The current version is made with Rust using the backend framework, Rocket, and the compile-time templating engine, Maud. The website is hosted on Linode and put behind a Cloudflare proxy to protect from the surprisingly common DDOS attacks. It's also behind a reverse proxy, nginx, to allow for other sites to be hosted on the same Ubuntu Linode server Gets 100% on Google Lighthouse. Previous version used NodeJS, expressJS, and a custom web framework/templator. CARAILIVECODEDOWNLOADSHOWCASE Started: 7. April 2019; Completed: 7. April 2019 skills: Unity Engine, C#, AI, ML, custom ML, desktop software, Windows software, Linux software, Mac software, web apps I created a custom neural net/machine learning procedure to train a neural net to drive through a track. It's inefficient but it works. I made a video describing how I developed it and how it works. SOUND GALAXYDOWNLOADCODESHOWCASE Started: 28. November 2021; Completed: 28. November 2021 skills: Rust, WGPU, WGSL, render shaders, Winit, BUI (my core gui lib), Constrainer (now "archived indefinitely" tool for creating CAD-like GUI), desktop software, Windows software, Linux software, audio visualization, async software, async in Rust I adapted a JavaScript/p5.js tutorial by ExecuteBig which itself was an adaptation from a HackClub tutorial to use Rust and my own GUI libraries/tools which are fully GPU accelerated. Usage: place a sound file named "input.mp3" next to the downloaded executable/binary file and run the executable or specifify the location of the file as the first argument when executing from a terminal MEET WITH PONGLIVECODE Completed: 21. Januar 2020 skills: JavaScript, HTML, CSS, p5.js, p5.sound, web apps, software audio playback, Node.js, Websockets, socket.io, real-time multiplayer, multiplayer on the web, multiplayer client prediction and rollback, multiplayer matchmaking A real-time multiplayer pong clone made for a Repl.it competition. Instead of just playing to a score, winning a point reveals information about the other player (that they submit) so that they can get to know each other a bit. Physics calculations are done server-side to prevent cheating. Optional singleplayer is available. OSU!KEYPADCODE Completed: 22. Juli 2020 skills: OpenSCAD, Arduino, C++, microcontrollers, peripheral dev, CAD, FreeCAD, FDM 3D Printing, Debouncing, Soldering An extremely cheap ($10) 2 key keyboard for playing Osu!, a rhythm game, with an Arduino Pro Micro base. Case designed by me in FreeCAD, keycaps designed by rsheldiii and customized with OpenSCAD, all 3D printed on my MP Select Mini V2 in PLA. Code was developed by me using Arduino's pre-built tools and C++. SYMBOL TRANSLATORLIVECODE Completed: 4. Juni 2019 skills: web apps, JavaScript, HTML, p5.js Created a web app with p5.js to make visually translating between cryptic "fonts" easier. Made for the Game Theory ARG. PEBBLEXCTIMERREBBLESTORECODEDOWNLOAD Completed: 20. August 2018 skills: C, low-level/embedded software, Pebble UI A timer for keeping track of cross country or track running intervals and other repeating timer needs. Also functions as a stopwatch. Uses the native Pebble SDK. IMAGES FROM IMAGES 2CODE Started: 22. Juli 2022 skills: WGPU, Rust, CLI Makes images from images using the GPU so it's much faster. Will update so that it also works in the web and desktop without CLI. LEGITIMATE IMAGES FROM IMAGESLIVECODE Completed: 26. Mai 2018 skills: JavaScript, p5.js, HTML, CSS, web apps I made a program that takes a bunch of images and forms them into another image by color matching. MULTIKAHOOTCODELIVE Completed: 9. Oktober 2019 skills: JavaScript, Node.js, ExpressJS, HTML, CSS, API, web apps Allows a single player to control multiple Kahoot "users" from an entirely separate website. Also allows keyboard controls without the use of external hotkey software so that one can answer faster on a Chromebook. Does not work for now due to changes in Kahoot's API GIVINGDUOCODECHROMEWEBSTOREFIREFOXADDONSDOWNLOAD Started: 12. August 2020; Completed: 30. August 2020 skills: reverse engineering APIs, JavaScript, HTML, REST API, browser extensions, browser extension publishing A browser extension to allow users of Duolingo to give multiple lingots at the same time to users for their contributions to the forums or helping them understand a new topic. Note: Lingots no longer exist so the extension no longer works.. LIVE STREAM MUSIC PLAYERCODE Started: 30. März 2018; Completed: 3. April 2018 skills: Python, FFmpeg, desktop software, Windows software, Linux software, Mac software, API, YouTube API Gets royalty free music from creators and automatically gives them credit to play during live streams through integration with OBS OPEN SOURCE CONTRIBUTIONS ADDED REPEAT OPTION TO TIMER FOR INFINITIME (OPEN SOURCE WATCH FIRMWARE)PR Started: 9. Januar 2022; Completed: 9. Januar 2022 skills: C++, firmware development, FreeRTOS software, LittleVGL I purchased a new PineTime watch which uses the Infinitime firmware. I had previously used my own app (PebbleXCTimer) on my old Pebble Time for this function but it's not portable and the Infinitime firmware does not have the function built in or sideloading. So, I added the functionality to the timer app already built in. Note: PR is unmerged but code is functional. They said they want it to be put into a separate app but I haven't gotten to it yet. ADDED ABILITY TO VIEW COMMENTS TO LBRY ANDROID APPPR Started: 28. Mai 2020; Completed: 29. Mai 2020 skills: Android Native, Android layouts/views, Java, REST API, mobile apps Comments on the LBRY website were already present but they were not available on the Android app. I like to read comments so I decided I should add them to the Android app so I analyzed how their website (ReactJS) was able to get comments from the LBRY REST backend server and adapted a similar technique to make comments available on the Android app. Note: I only included the first page of comments in my PR because I didn't see a way with their API to ensure that the comments were kept in sync (if a comment was added or removed before a user would scroll, comments may be missing or duplicated on the user's screen) without fetching all the pages at once (defeating the purpose of pagination of saving memory and bandwidth). I thought they were going to add something to their API or something but after my PR, they just went with the latter solution and fetched all the pages at once. MADE IT SO THAT ONE CAN UNPUBLISH AND/OR DELETE THEIR OWN VIDEOS FROM LBRY ANDROID APPPR Started: 2. Oktober 2020; Completed: 2. Oktober 2020 skills: Android Native, Android layouts/views, Java, REST API, mobile apps Unpublishing and deleting videos are separate actions on the LBRY platform. However, the LBRY Android app did not make this distinction and performed both actions. So, I added another button and fixed some UI logic around it. ABANDONED PROJECTS FROM ANARCHYCODE Started: 20. Juli 2021 skills: VR app development, OpenXR, Godot, FFI, Desktop Games, Windows Games, TCP Sockets, real-time multiplayer, async software, desktop software, Windows software, Linux software A micro voxel-world VR game. Never finished but it was a good exercise in making VR games and using Rust/FFI in game engines for optimal performance. Likely applicable to other engines like Unity and Unreal. This game would probably require a custom rendering pipeline to make performant at all so if this were to be fully developed, a custom engine would be used. TIDBITS DESKTOP: CUSTOM OS: Windows 10 CPU: i7-6700 GPU: RTX 2060 RAM: 32GB Monitors: 1 to 1.5 (average 1.25) LAPTOP: FRAMEWORK 13 OS: NixOS WM: Sway CPU: 12 Gen Intel i5-1240P0 RAM: 64GB PROGRAMMING ENVIRONMENT IDE: NeoVim Terminal: Alacritty Shell: Bash Release channel preference: LTS PERSONAL SERVER Host: Linode RAM: 2GB CPU: 1 core Xeon E5-2697 OS: NixOS Proxy: Nginx Server: Nextcloud <3 SOFTWARE STACK Rust <3 WEB STACK Backend: Rust w/ Actix Client: static HTML/CSS/JS generated from OCaml Database: Postgres SPORTS Ex-Cross Country/Track Tennis Cycling -------------------------------------------------------------------------------- Switch Language: English日本語 Check out the code on GitHub.com