
Edu-tech, machine learning, video games, and more! The ongoing projects of Michael Benjamin Burns.
GitHub |
LinkedIn |
Resume |
Game Portfolio Site
Wednesday, August 28, 2019
Machine Learning Water Turret Pest Deterrent
Here are some pictures of the 3D printed turret I've been working on. It can identify and track targets by adjusting the servos and then activate a water jet by using the solenoid valve controller. It uses Tensorflow using ImageNet custom compiled for Raspberry Pi 3B+. The hull was printed with a hand-constructed Anet A6 3D printer. The hull was designed in FreeCAD. More soon!

Monday, July 29, 2019
ProGab ESL Simulated Lecturer App
16:52 - Running App in Editor
19:20 - Running App on Android Device
Final Paper:
https://docs.google.com/document/d/11P64Je_q1hVFvL8bsmwNBfCxVxAFehfDip5gW0IsLlQ/edit?usp=sharingFinal Presentation Video (shown above):
https://www.youtube.com/watch?v=0qn-9gx6D7k
Final Presentation Slides:
https://docs.google.com/presentation/d/1G4cxJu8j1GPFE8tThRYGPBhdVQyBBw_DrxXB_hP_ftU/edit?usp=sharing
Final Project Files:
https://drive.google.com/open?id=10VWUoTwekPijgbiV8MwLxMCkxK8vWHYp
Labels:
AI,
C#,
computer science,
educational technology,
English,
ESL,
FaceFX,
georgia tech,
India,
NLP,
OMSCS,
tensorflow,
unity
Sunday, July 28, 2019
OMSCS - Educational Technology, Project Research
As I'm wrapping up my project for Educational Technology for the OMSCS program at Georgia Tech, I wanted to post my research regarding my project in the hope that it is of use to others. The project as a simulated lecturer that uses generated content to assist with learning English, specifically targeting students in India. I will post the deliverables and final presentation when they are finished.
Assignment 1
https://docs.google.com/document/d/17IWZhqfhN9KaeHZVU0XKeNfCq0tV7d8d_4j9skfifho/edit?usp=sharing
Assignment 2
https://docs.google.com/document/d/1XQKQe04Wub0cYCEeeiBtoK2jXZz52G0trxBNk-OHGSc/edit?usp=sharing
Assignment 3
https://docs.google.com/document/d/1_LQFnL4CozpUGqbpTHQuP6wAWByt9LH3MSvNSyF2vvA/edit?usp=sharing
Qualifier Question
https://docs.google.com/document/d/1alkwrZklGnZF75-c9fdAzm1gbFRLasT0H5tZm2n9WTk/edit?usp=sharing
Project Proposal
https://docs.google.com/document/d/1z5dj-Oj7_XNZ-msM6uADsBPHFSECPVWRvZcOo9V6QGM/edit?usp=sharing
Milestone
https://docs.google.com/presentation/d/1q25F9xtQep55eEW4MWptUFcpkXNt2CXOnS7ZwqnPdY8/edit?usp=sharing
Assignment 1
https://docs.google.com/document/d/17IWZhqfhN9KaeHZVU0XKeNfCq0tV7d8d_4j9skfifho/edit?usp=sharing
Assignment 2
https://docs.google.com/document/d/1XQKQe04Wub0cYCEeeiBtoK2jXZz52G0trxBNk-OHGSc/edit?usp=sharing
Assignment 3
https://docs.google.com/document/d/1_LQFnL4CozpUGqbpTHQuP6wAWByt9LH3MSvNSyF2vvA/edit?usp=sharing
Qualifier Question
https://docs.google.com/document/d/1alkwrZklGnZF75-c9fdAzm1gbFRLasT0H5tZm2n9WTk/edit?usp=sharing
Project Proposal
https://docs.google.com/document/d/1z5dj-Oj7_XNZ-msM6uADsBPHFSECPVWRvZcOo9V6QGM/edit?usp=sharing
Milestone
https://docs.google.com/presentation/d/1q25F9xtQep55eEW4MWptUFcpkXNt2CXOnS7ZwqnPdY8/edit?usp=sharing
Labels:
AI,
C#,
computer science,
educational technology,
English,
ESL,
FaceFX,
georgia tech,
India,
NLP,
OMSCS,
tensorflow,
unity
Wednesday, March 7, 2018
VBT Update 3/7/18
(Click to enlarge)
Completed:
- Serializes/deserializes tree to/from JSON
- Rewrote Blackboard to serialize correctly
- Make agents use singular static reference to given tree, using their own blackboard variables
- Manager determines loading and unloading of tree instances
- Rewrote much of tree editor
- Wrote and tested logic for composites, decorators, and actions. Subtree action included and correctly loads and uses tree within tree.
Up Next:
- More actions and composites
- Testing in builds
- More editor debugging features
- Improve UI / usability
- Ultimately, use to design AI for an indie game
Labels:
AI,
behavior tree,
blackboard,
C#,
deathstate,
JSON,
newtonsoft,
ost,
reflection,
soundtrack,
unity,
VBT
Saturday, February 24, 2018
VBT Update 2/24/18
I've been hard at work getting the editor linked up to the agent tree.
- The tree itself will be a static reference that all agents can use a single instance of- so you can have 1000 agents and you'll only have to duplicate their local variables, not all the tree stuff.
- I've focused on doing some neat reflection magic in editor to make adding new behaviors easy.
- The editor and agent behavior is still totally separated so that when building to platforms, all of the editor based code is stripped. In editor however, they link into each other so you can make changes to agent behavior on the fly.
- I've switched JSON from CSV, and to serializing/deserializing classes using the Newtonsoft .NET JSON lib. This solution seems far more sustainable and easier once the initial groundwork is laid. Serialize() & Deserialize(). ez.
I'm currently in that dark tunnel of code wherein you depart with a map and hope to emerge on the other side with the glorious treasure of a new set of features. Wish me luck ; )
In the meantime, I'd dug up the bits of the OST that I'd done for the roguelike Deathstate (on Steam) and realized I'd never posted that so give it a spin!
Labels:
AI,
behavior tree,
blackboard,
C#,
deathstate,
JSON,
newtonsoft,
ost,
reflection,
soundtrack,
unity,
VBT
Monday, January 22, 2018
VBT Update 1/22/18
I've added serialization to the behavior tree. You can see a gif of saving and loading a tree out below. (Click to view full size)
I've opted to store the tree in a space separated value sheet with key value pairs, to keep the file size small. Other contenders are XML and JSON, but SSVs are easy to parse and there are no JSON parsing libraries included with Unity, and the overhead with XML doesn't seem worth it here.
Next time I'll be working on having the agent correctly run through the tree in-game, and perform what actions are specified. The "brains" of the operation. This will be tricky so I'll start with running through the tree each update loop, but later state-saving can be added to increase efficiency.
I've opted to store the tree in a space separated value sheet with key value pairs, to keep the file size small. Other contenders are XML and JSON, but SSVs are easy to parse and there are no JSON parsing libraries included with Unity, and the overhead with XML doesn't seem worth it here.
Next time I'll be working on having the agent correctly run through the tree in-game, and perform what actions are specified. The "brains" of the operation. This will be tricky so I'll start with running through the tree each update loop, but later state-saving can be added to increase efficiency.
Monday, January 15, 2018
VBT Update 1/16/18
- Hooked up the VBT editor window with the inspector to both display the current Agent's blackboard
-The values carry over between them
-I've also added support for saving and loading files
- A few visual tweaks / usability

Next:
- Serializing/deserializing tree data
-The values carry over between them
-I've also added support for saving and loading files
- A few visual tweaks / usability

Next:
- Serializing/deserializing tree data
Subscribe to:
Posts (Atom)