···11+---
22+name: ASL Interface
33+summary: An interface to translate ASL to/from English
44+timespan:
55+ from: 2025
66+internalSort: 50
77+tags:
88+ - web
99+ - tailwind
1010+ - astro
1111+ - python
1212+ - flask
1313+links:
1414+ github: amiruzzaman/ASL_research
1515+image: ./asl-research.png
1616+---
1717+1818+This project is part of an ongoing research project at West Chester University. I'm working on the web interface which uses the models created in the research to provide translation of ASL to/from English.
1919+2020+The frontend is built with AstroJS using Tailwind and daisyUI. It's pretty simple with only three pages. The main part is the animation playback system, which uses a Canvas to dynamically draw recorded ASL gloss animations.
2121+2222+The animations are recorded beforehand and landmarked using Google MediaPipe. The backend (more on that in a sec) serves those as msgpacked files. I chose msgpack since these are pretty big animations so I wanted a more compact format than JSON. The animation system can play back these files at different speeds. The interface also allows you to speak and it will live-translate the English speech to ASL.
2323+2424+The backend is written in Python using Flask. It's not the most complex thing, really just serves files and passes video data to aforementioned models. That's not to say the models aren't complex or anything, just that my part of the backend is simple.
2525+2626+This was a fun project to work on with a team. It was especially challenging getting MediaPipe to work with Nix (damn you Bazel). I ended up having to pull the wheel file from PyPi instead of building it from source.
src/content/projects/asl-research.png
This is a binary file and will not be displayed.
-1
src/content/projects/dgang.mdx
···33summary: Yet another guide to using Nix/NixOS, with a twist
44timespan:
55 from: 2024
66- to: 2024
76internalSort: 60
87tags:
98 - astro
+3-2
src/content/projects/wcpc.mdx
···1515image: ./wcpc.png
1616---
17171818-An Online Judging system (often shortened to OJ) is a tool used for programming competitions. It handles taking user submissions and... well... judging them. Usually this involves running the submission against a series of test cases.
1818+An Online Judging system (often shortened to OJ) is a tool used for programming competitions. It handles taking user submissions and scoring them based on their output. Usually this involves running the submission against a series of test cases.
19192020This was a big undertaking for me as a project but overall I learned so much about many, many things from it. Some cool features include.
21212222- WebSocket-based submission and feedback to users
2323- Fully customizable branding so the site can be customized for different schools / brands
2424+- Integrated code editor for writing submissions. I want to also make a VSCode extension maybe
2425- Git-based export of all problems for users, simply run `git clone` to get a copy of all your submissions!
2525-- From-scratch jailing system for running user code inside of, utilizing various Linux kernel features
2626+- Lightweight jailing system for running user code inside of, utilizing various Linux kernel features
2627- SAML integration so institutions can use their current auth instead of making users make new accounts
2728- Live updating leaderboard with animations for when teams change places
2829- Confetti :)
+8-6
src/pages/index.astro
···1010 <div>
1111 <h1>Ben C's <span class="gradient-text">Portfolio</span></h1>
1212 <p>
1313- Hi there! I'm Ben C, a college student looking to enter the world of software development,
1414- specifically full-stack web development.
1313+ I'm Ben C, a college student looking to enter software development, specifically full-stack
1414+ web development.
1515 </p>
1616 <p>
1717 I like to try a lot of things, from <a href="/projects/ow-new-horizons"> modding games</a>
···3535 <p>
3636 I'm a 20-year-old developer from Pennsylvania, USA. I first started programming with Unity
3737 games but then quickly began doing web development and then expanded into anything I was
3838- interested in. I've been programming for about six years now and hope that I can continue to
3838+ interested in. I've been programming for about eight years now and hope that I can continue to
3939 pursue a career in this industry.
4040 </p>
4141 <p>
4242 After programming on my own for about 3 years, I went to trade school for Information
4343 Technology Programming and learned about best practices and the software development life
4444 cycle. I participated in both SkillsUSA and TSA and was awarded 1st place in states for Video
4545- Game Design in TSA, as well as 1st place in Computer Programming at states and 4th at
4545+ Game Design in TSA. I also got 1st place in Computer Programming at states and 4th at
4646 nationals in SkillsUSA. Throughout my time at trade school, I received my OSHA, IC3, and
4747 Pennsylvania State Skills (Information Technology Programming) certifications.
4848 </p>
···5252 motivating me to try new things and publish my work.
5353 </p>
5454 <p>
5555- I'm currently in college majoring in Computer Science. I'm hoping to graduate with a Bachelors
5656- or Masters.
5555+ I'm currently in college majoring in Computer Science. I'm hoping to graduate in 2026 with a
5656+ Bachelors and a minor in Professional Technical Writing. I am currently doing research on ASL
5757+ translation with the Computer Science department. I'm also developing a web interface for us
5858+ to use for programming competitions.
5759 </p>
5860 </div>
5961