Skip to content

Instantly share code, notes, and snippets.


Gwen glfmn

View GitHub Profile
glfmn /
Last active Jul 17, 2019
Learn a bit more about me!


I have long been interested in graphics programming, visual effects, and video games!

path-finding demo

Along the way I've fallen in love with programming languges, pathfinding, and all kinds of other amazing tools which empower me as a programmer. Through my desire to make art I found technology, and through my desire to master technology I'm drawn again to art.

If you are looking at this page and want to get to know me a little better, check out these projects:

glfmn /
Created May 26, 2018
Terrible endless runner game prototype using ggez
//! The simplest possible example that does something.
extern crate ggez;
use ggez::{GameResult, Context};
use ggez::graphics::{self, DrawMode};
use ggez::conf;
use ggez::event;
#[derive(Copy, Clone, Debug)]
glfmn /
Last active May 15, 2020
pre-commit Test Automation Script
#!/usr/bin/env sh
STASH_NAME="pre-commit-$(date +%s)"
ROOT_DIR="$(git rev-parse --show-toplevel)"
BRANCH_NAME=$(git branch | grep '*' | sed 's/* //')
glfmn /
Created Mar 10, 2018
godot-rust bindings test pre-commit script.
#!/usr/bin/env sh
STASH_NAME="pre-commit-$(date +%s)"
BRANCH_NAME=$(git branch | grep '*' | sed 's/* //')
glfmn / gist_cargo.toml
Last active Dec 21, 2017
Command-line application which demonstrates potentially unexpected behaviour in clap-rs
View gist_cargo.toml
name = "gist"
version = "0.1.0"
authors = ["Gwen Lofman <>"]
description = "A utility for pretty-printing git stats"
license = "MPL-2.0"
readme = ""
glfmn / a-star.cpp
Last active Apr 12, 2017
A-Star graph search
View a-star.cpp
#pragma once
#include "a-star.hpp"
template<typename T>
bool contains(std::deque<T> queue, T node) {
for (auto item : queue) {
if (item == node) {
return true;
} else {return false;}
glfmn / TypeError.log
Created Apr 3, 2017
Error from raven.js:282 on jury system
View TypeError.log
Uncaught TypeError: Cannot read property 'length' of undefined
at TlApplicationReviewContainer.handleNextApplication (
at Object.invokeGuardedCallback (
at executeDispatch (
at Object.executeDispatchesInOrder (
at executeDispatchesAndRelease (
at executeDispatchesAndReleaseTopLevel (
at Array.forEach (native)
at forEachAccumulated (
at Object.processEventQueue (
glfmn /
Last active Feb 25, 2017
Interview questions from Rona Akbari about FSU's immersive media course.

1. Why did you take the class?

I wanted to have a chance to explore immersive media topics hands-on; I saw the class offered on the FSU SIGGRAPH facebook page, and I needed some credits, so I signed up right away. I've had a long-term interest in the ways that emerging technologies affect art, especially in more interactive media like video games and installations (like these).

2. How have your past experiences shaped your experience in this course?

As my background lies more in mathematics, science, programming; and digital and interactive artwork, I'm having trouble appreciating the process of traditional video production. I'm drawn more to work like Nonny De La Penas journalistic experiences, where immersive cameras and technology are used less as a tool of documentation and more as a medium of communication, expression, and a space to project experiences.

I want to explore the technologies that underlie production, and the ways to apply them in

glfmn / permute.hs
Last active Feb 13, 2017
A quick exercise in permutations, making useless dummy usernames.
View permute.hs
import Data.Char
-- | Runs through every possible combination of the values in each list,
-- producing n x m combinations from lists of size n and m respectively.
-- Prepends each x to each y.
permute :: [[a]] -> [[a]] -> [[a]]
permute xs ys = xs >>= \x -> map (x++) ys
-- | Permutes all values in a Foldable into a single list of lists.
permuteN :: Foldable t => [[a]] -> t [[a]] -> [[a]]
You can’t perform that action at this time.