I build web-native machine learning systems and research tooling for spatial reasoning, embodied agents, and geometric representations — with a bias toward fast, reproducible experiments and clean system design.
Background
I am currently an undergraduate in computer science, study at the University of Massachusetts Boston. I am also an undergraduate researcher at Machine Psychology, a lab that combines biomedical technology with artificial intelligence.
Hobbies
In my spare time I practice photography with my Sony A7 iii, collect manga and vinyl records, sketch pictures of my dog, and teach myself Japanese. I enjoy travelling to other countries and playing video games.
Machine Learning for N-dimensional Spatial Reasoning Tasks on the Web
3/15/2026
Frontiers
Blake Moody, Jiehyun Kim, Sanghyuk Kim, Daniel Haehn
Spatial reasoning is essential for solving complex tasks in dynamic and high-dimensional environments. However, current training models for spatial tasks are computationally demanding and heavily reliant on human input. To address this gap, we present Snake-ML, a web-based simulation tool and proof-of-concept framework designed to demonstrate client-side training of spatial reasoning tasks. Snake-ML serves as an efficient and intuitive test bed for developing spatial navigation strategies in browser-based environments. We chose the snake game as our test bed because it is well suited for demonstrating spatial reasoning in low-dimensional visual spaces while remaining relevant to higher-dimensional tasks, compared to alternative methods. Through quantitative analysis, on the edge alone, Snake-ML achieves a 4.58× speedup in model inference. Additionally, we developed a direct TensorFlow.js GPU pipeline that achieves up to a 32× speedup in training time without any CPU/GPU synchronization. This pipeline has the potential to improve many edge-based AI visualization projects. Snake-ML shows potential for adaptability to complex spatial tasks, such as autonomous systems, robotics, and AI-driven environments. Our code and web-based simulation tool are publicly available.
A Bachelor of Science in Computer Science at University of Massachusetts Boston provides a comprehensive foundation in computing, programming, and software development. Students gain expertise in algorithms, data structures, systems design, and computer architecture, while also exploring areas like artificial intelligence, cybersecurity, and web development. The program emphasizes problem-solving, critical thinking, and practical skills through hands-on projects and internships. Graduates are prepared for careers in software engineering, data science, and technology innovation, or for further academic pursuits in computer science and related fields.
Intro to Computing
swaminathan.iyer@umb.eduBostonY02-23009/3/2022
An introduction to computer programming: the concepts involved in use of a higher level language and the program development process. The goal of this course is proficiency in the design and implementation of programs of significant size and complexity. This course is quite demanding because of the length of the programming exercises assigned. This is the first course in the computer science sequence.
Intermediate Computing and Data Structures
swaminathan.iyer@umb.eduBostonY02-23101/6/2023
The design and implementation of computer programs in a high-level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. The assignments are designed to introduce the student to a variety of topics in computing: data structures and ADTs, Lists, Stacks, Queues, Ordered Lists, Binary Trees, and searching and sorting techniques.
Advanced Algorithms and Data Structures
beatrice.perez@umb.eduBostonY04-41107/7/2024
A systematic study of the methods of structuring and manipulating data in computing. Abstract data types. The design and analysis of algorithms. Advanced techniques for program development and organization.
Programming in C
aaditya.tamrakar001@umb.eduBostonW02-01581/6/2023
C programming for programmers with prior knowledge of some high-level language (e.g., one semester of programming in Java). The course treats C as a machine-level language and as a general-purpose language; it covers number representation, masking, bitwise operations, and memory allocation, as well as more general topics such as dynamic data structures, file I/O, separate compilation, program development tools, and debugging.
Discrete Mathematics
nurit.haspel@umb.eduBostonW01-00041/6/2024
An introduction to the mathematical structures and concepts used in computing: sets, mathematical induction, ordered sets, Boolean algebras, predicate calculus, trees, relations and lattice theory. Formal and informal theories and corresponding mathematical proofs are taught.
Social Issues and Ethics in Computing
amanda.potasznik@umb.eduBostonM02-04041/6/2024
This course explores some of the ethical and societal issues that are raised by computing. Topics include privacy, freedom of expression, intellectual property, liability, the effect of computing on social interaction, and human-computer interface issues. Students write an analytical paper on an appropriate topic and also present their findings to the class.
Computer Architecture and Organization
hefei.qiu001@umb.eduBostonY02-21201/6/2024
Computer hardware concepts and hardware-level programming for C programmers. Topics include digital logic circuits, computer organization of a microprocessor system (i.e., how CPU, memory, and i/o interface chips are interconnected), serial and parallel port interfacing, hardware programming in C and C/assembler, interrupt programming, device drivers. The necessary assembly language is also covered. The course includes a hands-on lab meeting one hour per week.
Graphics
daniel.haehn@umb.eduBostonW01-00069/3/2024
After completing this course, you will be able to develop rich and interactive web-based 3D visualizations for computers, smartphones, and tablets. By using WebGL, you will learn to create immersive and high-quality graphics, including 3D geometric transformations, camera transformations, the image-rendering process, as well as materials and texture mapping. This course also includes advanced topics such as color representations, light simulation, dealing with geometries, and creating animations. And since everything runs in the browser, you can show your work to your friends with a link to a website.
Independent Study - Large Language Models (LLM)
daniel.haehn@umb.eduBostonM-3-0201-649/3/2024
Work done by a student or group of students under faculty supervision on material not currently offered in a regularly scheduled course. Students wishing to undertake such work must first find a faculty member willing to supervise it; the work to be completed must be approved by the department chairperson.
An Introduction to the Theory of Computation
stephen.chang@umb.eduBostonW01-00059/2/2025
This course introduces such theoretical aspects of computing as models of computation, inherent limits on computation, and feasible computation. Topics include definition of computable functions (recursive functions, functions computable by Turing machines, functions computable in a programming language), unsolvability of the halting problem and related problems, the classes P and NP, finite automata, and context-free grammars.
The Structure of Higher Level Languages
tiago.cogumbreiro@umb.eduBostonW01-00049/2/2025
The syntax and semantics of higher level languages. Mechanisms for parsing, parameter passing, scoping, dynamic storage allocation, and message passing are modeled by programs written in a suitably high-level language.
Compilers
swaminathan.iyer@umb.eduBostonY02-21109/2/2025
This course is an introduction to compiler organization and implementation, including formal specifications and algorithms for lexical and syntactic analysis, internal representation of the source program, semantic analysis, run-time environment issues, and code generation. Participants write a compiler for a reasonably large subset of a contemporary language, targeted to a virtual machine.
Intro to Computing
swaminathan.iyer@umb.eduBostonY02-23009/3/2022
An introduction to computer programming: the concepts involved in use of a higher level language and the program development process. The goal of this course is proficiency in the design and implementation of programs of significant size and complexity. This course is quite demanding because of the length of the programming exercises assigned. This is the first course in the computer science sequence.
Intermediate Computing and Data Structures
swaminathan.iyer@umb.eduBostonY02-23101/6/2023
The design and implementation of computer programs in a high-level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. The assignments are designed to introduce the student to a variety of topics in computing: data structures and ADTs, Lists, Stacks, Queues, Ordered Lists, Binary Trees, and searching and sorting techniques.
Advanced Algorithms and Data Structures
beatrice.perez@umb.eduBostonY04-41107/7/2024
A systematic study of the methods of structuring and manipulating data in computing. Abstract data types. The design and analysis of algorithms. Advanced techniques for program development and organization.
Programming in C
aaditya.tamrakar001@umb.eduBostonW02-01581/6/2023
C programming for programmers with prior knowledge of some high-level language (e.g., one semester of programming in Java). The course treats C as a machine-level language and as a general-purpose language; it covers number representation, masking, bitwise operations, and memory allocation, as well as more general topics such as dynamic data structures, file I/O, separate compilation, program development tools, and debugging.
Discrete Mathematics
nurit.haspel@umb.eduBostonW01-00041/6/2024
An introduction to the mathematical structures and concepts used in computing: sets, mathematical induction, ordered sets, Boolean algebras, predicate calculus, trees, relations and lattice theory. Formal and informal theories and corresponding mathematical proofs are taught.
Social Issues and Ethics in Computing
amanda.potasznik@umb.eduBostonM02-04041/6/2024
This course explores some of the ethical and societal issues that are raised by computing. Topics include privacy, freedom of expression, intellectual property, liability, the effect of computing on social interaction, and human-computer interface issues. Students write an analytical paper on an appropriate topic and also present their findings to the class.
Computer Architecture and Organization
hefei.qiu001@umb.eduBostonY02-21201/6/2024
Computer hardware concepts and hardware-level programming for C programmers. Topics include digital logic circuits, computer organization of a microprocessor system (i.e., how CPU, memory, and i/o interface chips are interconnected), serial and parallel port interfacing, hardware programming in C and C/assembler, interrupt programming, device drivers. The necessary assembly language is also covered. The course includes a hands-on lab meeting one hour per week.
Graphics
daniel.haehn@umb.eduBostonW01-00069/3/2024
After completing this course, you will be able to develop rich and interactive web-based 3D visualizations for computers, smartphones, and tablets. By using WebGL, you will learn to create immersive and high-quality graphics, including 3D geometric transformations, camera transformations, the image-rendering process, as well as materials and texture mapping. This course also includes advanced topics such as color representations, light simulation, dealing with geometries, and creating animations. And since everything runs in the browser, you can show your work to your friends with a link to a website.
Independent Study - Large Language Models (LLM)
daniel.haehn@umb.eduBostonM-3-0201-649/3/2024
Work done by a student or group of students under faculty supervision on material not currently offered in a regularly scheduled course. Students wishing to undertake such work must first find a faculty member willing to supervise it; the work to be completed must be approved by the department chairperson.
An Introduction to the Theory of Computation
stephen.chang@umb.eduBostonW01-00059/2/2025
This course introduces such theoretical aspects of computing as models of computation, inherent limits on computation, and feasible computation. Topics include definition of computable functions (recursive functions, functions computable by Turing machines, functions computable in a programming language), unsolvability of the halting problem and related problems, the classes P and NP, finite automata, and context-free grammars.
The Structure of Higher Level Languages
tiago.cogumbreiro@umb.eduBostonW01-00049/2/2025
The syntax and semantics of higher level languages. Mechanisms for parsing, parameter passing, scoping, dynamic storage allocation, and message passing are modeled by programs written in a suitably high-level language.
Compilers
swaminathan.iyer@umb.eduBostonY02-21109/2/2025
This course is an introduction to compiler organization and implementation, including formal specifications and algorithms for lexical and syntactic analysis, internal representation of the source program, semantic analysis, run-time environment issues, and code generation. Participants write a compiler for a reasonably large subset of a contemporary language, targeted to a virtual machine.
For the duration of my Independent Study course, I have been tasked with researching the architecture of Large Language Models, a cutting-edge technology in the Artificial Intelligence landscape.
CS-Club-Website-Discord-Bot
This bot will provide services for the UMB CS Club website for rsvp and user database management.
CS-Club-Website
Minesweeper
Felt like playing Minesweeper, so I made it. 5head