I’m a guy who likes to make bad jokes!
I am also interested in Computational Geometry, aperiodic tilings, pathing algorithms, and DevOps. I currently work for PCL construction as a Data Scientist. My current work focuses on doing graph visualization and path optimization, azure cloud parallelization (Azure Batch), and other fun stuff.
This is a little place where I can make my projects available.
This is a very early prototype of a graph visualization and calculation tool, which I hope someday to make into an open source project. The idea is to combine the ease of use and many algorithms defined in NetworkX, with the blazing fast Visualization and Animation tools of Blender. This would allow users to build and query very large graphs, in context with models associated with their projects. Collaborators:
- NetworkX - https://networkx.org/
- Brian Gue - BMgue@pcl.com
- Blender - https://www.blender.org/
This algorithm returns a path from a start state to a goal state. The algorithm is able to return a suboptimal path in a short amount of time. The algorithm is able to iteratively improve the path over time by calling the compute_or_improve_path method. The algorithm is also able to cope with dynamic environments by calling the update_graph function, which updates the graph with new weights. The algorithm makes use of previous work done when there are changes to the graph. Based on the work completed in this paper:
[1] Likhachev, Maxim, David I. Ferguson, Geoffrey J. Gordon, Anthony Stentz, and Sebastian Thrun. “Anytime dynamic A*: An anytime, replanning algorithm.” In ICAPS, vol. 5, pp. 262-271. 2005.
Source Code: https://github.com/OrionSehn-personal/networkx/blob/ada_star/networkx/algorithms/shortest_paths/ada_star.py
Collaborators:
- NetworkX - https://networkx.org/
- Dana Cobzas - cobzasd@macewan.ca
- Dan Schult - dschult@colgate.edu
- Brian Gue - BMgue@pcl.com
This is a study on generating puzzle piece edges as a set of Bezier Curves, parameterizing their shape as an 18 dimensional vector with each component between 0 and 1. The challenge was to maximize the uniqueness of each of these edges by choosing these components to be as different as possible from the rest of the puzzle piece edges. The algorithm is applied to generate puzzles of different types of tiling, square, triangular, and Penrose, although in theory, it could be applied to any set of lines.
Website: https://orionsehn-personal-aperiodicpuzzle-puzzlesite-yy40ro.streamlit.app/
Source Code: https://github.com/OrionSehn-personal/AperiodicPuzzle
Collaborators:
- Chris Ramsey - ramseyc5@macewan.ca
- Adam Humeniuk - ahumeniuk@mtroyal.ca
A guide to using Microsoft’s Azure Batch to parallelize an arbitrary executable, using Docker Containers. This is a cloud computing architecture which enables users to spin up many virtual machines to complete many small tasks over many computers thereby amassing far more computing power than any single device could manage.
Link: https://orionsehn-personal.github.io/BatchGuide/
Collaborators:
- Brian Gue - BMgue@pcl.com
This is a tool used for visualizing one dimensional substitution tilings. The user can define a substitution, and its first few iterations will be displayed as a segment diagram. Also included is the diffraction intensity function and the diffraction pattern of the tiling. Additional key elements of the tiling is also such as the Perron-Frobenius eigenvector, and if the subsitution is pisot.
Website: https://funmaster524-1-dimsubstitutionviewer-streamlit-sub-sx3uuu.streamlit.app/
Source Code: https://github.com/OrionSehn-personal/1-dimSubstitutionViewer
Collaborators:
- Nicolae Strungaru - strungarun@macewan.ca
- Chris Ramsey - ramseyc5@macewan.ca