Root

Click on the items below to expand them.

Client Websites

These websites are customized WordPress, a content management system. They were created using WordPress so that the clients could manage their own websites without code after they were created.

badgerug.com

Visit this website: badgerug.com

Open related: leveragepd.com
Gallery Image Gallery Image Gallery Image

christinewaller.com

Visit this website: christinewaller.com
Gallery Image Gallery Image Gallery Image

deepinteractive.com

Gallery Image Gallery Image Gallery Image Gallery Image

Background

Deep Interactive is a web design company under Design-Engine. I worked there making websites for clients as well as the Design-Engine websites listed above in related items.

design-engine.com

Gallery Image Gallery Image Gallery Image

Background

Design-Engine is a 3D CAD school for industrial designers and mechanical engineers. This website is their publication website and their education website is listed above in related items.

hififitness.com

Visit this website: hififitness.com
Gallery Image Gallery Image

jobs.designengine.com

Gallery Image Gallery Image

Background

This is Design-Engine’s job board for industrial designers and mechanical engineers. It is made with WordPress and is capable of allowing new listings to be posted without code by Design-Engine or interested employers who create accounts.

lakeshoreacademy.com

Visit this website: lakeshoreacademy.com
Gallery Image Gallery Image Gallery Image Gallery Image

Background

Lakeshore Academy is a gym for artistic gymnastics where I worked as a coach. I continue to practice gymnastics at their Chicago location during an adult class. If you are interested in gymnastics as well their schedule can be found here.

leveragepd.com

Visit this website: leveragepd.com

Open related: badgerug.com
Gallery Image Gallery Image Gallery Image

proetools.com

Gallery Image Gallery Image Gallery Image

Background

Pro/Engineer Tools is a 3D CAD software that is a favorite at Design-Engine and is used as their education website’s title. In addition to making this website, I also wrote their tutorial website which requires a password to access website and so is not listed.

qualitativecapital.com

Visit this website: qualitativecapital.com
Gallery Image Gallery Image

tradevaliant.com

Visit this website: tradevaliant.com
Gallery Image Gallery Image

vciplaw.com

Visit this website: vciplaw.com
Gallery Image Gallery Image Gallery Image

Featured Class Projects

The projects listed below were created during CS 526, Computer Graphics II. The focus of the class was large display devices including CAVE2™, a virtual realtiy environment. All project pages include descriptions of how the projects were created and source code to download.

Somebody’s Watching Me

Gallery Image Gallery Image Gallery Image

About the Project

This project is a visualization of the 2001 - 2013 crime data in Chicago and includes 5,000,000+ entries. The ground plane uses images from OSG, Google, and Yahoo maps to see an overview of the city of Chicago. On top of the image maps are extruded polygons that represent the community areas of Chicago. These community areas contain crimes that are within their boundaries and their geometric representation’s height and color is a function of the number of crimes they contain. In addition, the CTA L lines and stations are displayed geometrically in the appropriate location relative to the ground plane maps.

Straight Away to Orion

Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image

About the Project

This project is a visualization of all known exoplanets from the Open Expolanet Catalogue and includes 731 solar systems, 800 stars, and 983 planets (the amount of data available at the time). The data is stored in a XML file and visually represented as 3D solar systems that can be selected by the user as the program runs. Additonally small multiples, which are simplified abstractions of the solar systems, are displayed to allow the user to compare or select solar systems.

Representing solar systems is quite challenging as both distance and size of stars and planets generally cannot be displayed simultaneously. To overcome this problem all solar systems, stars, and planets are normalized in terms of binary distances, star radii, planet radii, planet orbit distances, and orbit periods. The normalization serves the purpose of scaling the solar system so that all objects can be view simultaneously. Although the normalization may not necessarily preserve distance for binary or trinary star systems, the user can manipulate the scales or toggle to a “constant distance mode”.

Fractal Explorer

Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image

About the Project

Fractal explorer is a Processing sketch created for touch interaction on Cyber-Commons, a large format display device. Although the sketch is intended to be run on Cyber-Commons, where users interact either by touch or with a mouse, it can also be run on a common computer for mouse only interaction. The Mandelbrot Set is explored in the sketch through categorized parameters of a touch menu. Touch menu interaction is assisted by a state textbox, positioned horizontally where the user last touched, that displays messages informing available actions based on the previous action. The goal of the sketch is to allow users unfamiliar with fractal properties to gain an intuitive understanding through interaction.

Information

Alexander Simes

simes.alex@gmail.com
(733) 387 - 0446

About Me

Bio

My name is Alexander Simes. Currently I work as a Web Developer and Programmer at the Electronic Visualization Lab of the University of Illinois at Chicago where I also am studying Computer Science. I am a graduate of the School of The Art Institute of Chicago where I studied in the Art & Technology and Animation departments.

Visual Programming

Most of the projects in Visual Programming were written recreationally in Processing. More recently I have begun writing programs in JavaScript where they can be viewed on this website without plugins or accepting Java (Java is not Apple mobile friendly).

Web Work

The websites listed in Web Work were created for clients using WordPress. Many of the websites were created while I worked at Deep Interactive, a web company under Design-Engine. WordPress was used because it allows clients to modify their website without code when they want to update their content or blog.

CS Courses

Fall 2012

Artificial Intelligence I
Computer Graphics I:
  • Rasterizing arbitrary polygons
  • Mapping 3D scenes to a viewport
  • Raytracing

Data Structures and Discrete Mathematics II

Spring 2013

Computer Algorithms I
Human Augmentics
Machine Organization:
  • Assistant Teacher during Spring and Fall 2014: Resume
  • Translating between Assembly and C
  • Optimizing C for GCC

Fall 2013

Computer Graphics II:

Introduction to Networking
Parallel Processing

Spring 2014

Compiler Design
Data Mining and Text Mining

Fall 2014

Operating Systems Concepts and Design
Master’ Project

Resume

Education

2012 to Present
Master of Computer Science
University of Illinois at Chicago

2007 to 2011
Bachelor of Fine Arts
School of the Art Institute of Chicago (SAIC), Chicago, IL
Emphasis in Art & Technology and Animation
Presidential Merit Scholarship Recipient

Experience

2014 to Present
Teaching Assistant to CS 261, Machine Organization
Spring and Fall Semesters
University of Illinois at Chicago

2012 to Present
Web Development and Programming
Electronic Visualization Lab (University of Illinois at Chicago), Chicago, IL

2011 to 2012
Website Design and Development
Deep Interactive / Design Engine, Chicago, IL

Summer 2011
Internship: Programming Artificial Intelligence for 3D Models
Leviathan, Chicago, IL

Spring 2010
Internship: Graphics and Website Design
Green World Alliance / Skysite Properties, Chicago, IL

2007 to 2012
Gymnastics Coach
Lakeshore Academy of Artistic Gymnastics, Chicago, IL

Skills

Web
MAMP, WordPress
AJAX, ASP, CSS, HTML, JavaScript, MySQL, PHP

Programming
Arduino, Processing, Unity, Visual Studio
C, C++, C#, Java, MPI, Python

Graphics
Adobe After Effects, Adobe Illustrator, Adobe Photoshop, Final Cut Pro, Maya

Visual Programming

Most items below were written in Processing or Unity. I am currently in the process of porting some of these as JavaScript where they will be viewable within this website’s canvas (HTML5).

Animated Path Finder

Go to Processing Sketch: Animated Path Finder
Gallery Image Gallery Image Gallery Image

About the Sketch

Background
This sketch was written in Processing while I was an intern at Leviathan, a studio specializing in a variety of visual effects. I wrote it to demonstrate that the complex 3D models being produced at Leviathan could be given programmatic behaviors.

The Avatar
The avatar was programmatically created from scratch as a collection of parented nodes containing vertices connected with triangles (although I learned a lot doing this I would not recommend this method, it is exhaustively tedious). The advantage of this method was that I could export the results from Processing to Maya for rendering. The avatar’s animation is driven with matrix transformations and trigonometric functions.

Path Finding
The pathfinding is done through a modified version of Dijkstra’s algorithm. It is unrealistic in the sense that the avatar has perfect knowledge of its environment, but an optimal path was the desired behavior so it is appropriate for this sketch. The obstacles are randomly generated before the path finding occurs and can be randomized by the user.

Buddhabrot

Open program: Buddhabrot

Open related: Mandelbrot Set

About the Buddhabrot

The Buddhabrot is a variation of the Mandelbrot Set where orbit traps are visualized which resemble a seated Buddha. Traditionally a Mandelbrot image is created by passing each pixel through the equation:
z = z2+c
In this equation, z and c are both complex numbers and so have a real and imaginary component. The x and y coordinates of each pixel are mapped to the complex plane as c. The equation is run through iterations and z takes on the new values. If z tends towards infinity (its distance from the origin of the complex plane is greater than 2.0) then the equation is stopped. The Buddhabrot image is a visualization of pixels moving about the screen as their z representation changes.
Gallery Image Gallery Image Gallery Image Gallery Image

About the Program

This program was written in JavaScript to be displayed on this website. At the beginning of the program all pixels that do not belong to the Mandelbrot Set are found for each color channel (red, green and blue). Each color channel is treated independently and each can have their own maximum iterations for the Mandelbrot Set code. The function for adding orbit traps toggles among the color channels incrementing value buffers for the current color channel. After some number of orbit traps are added (successfully added, only ones that do not belong to the Mandelbrot Set) a histogram is created for the color channel. By using a cumulative distribution function on the histogram for each color channel the data is brought to a visible range with maximum contrast.

Chess AI

Go to Processing Sketch: Chess AI

Open related: Chess AI 2
Gallery Image Gallery Image

About the Sketch

Background
This sketch was written in Processing and was my first chess AI. White and Black can both be assigned to play as human or computer although here the player is set to play the computer. When the computer plays there is no database of moves, all moves are decided using a Game Theory kind of logic. I designed the chess set and it is displayed purely geometrically (as opposed to loading images).

Improvements
I created this sketch long before taking an AI course and its structure is too slow for deep searches. As a result it searches to a depth of three ply and so does not play strongly. However within its limited depth search it does correctly find checkmate or if that is not an option generally whatever is materialistically the best move. The second chess AI improved this performance by focusing on speeding up move generation.

Chess AI 2

Go to Processing Sketch: Chess AI 2

Open related: Chess AI
Gallery Image Gallery Image

About the Sketch

Background
This sketch was written in Processing and was my second chess AI. Like the first chess AI, White and Black can be assigned as either human or computer but here both are set to play as computers. Also like the first chess AI, there is no database of moves, all moves are generated using an algorithm similar to Minimax. I also designed this chess set as purely geometrical (as opposed to loading images).

Improvements
This sketch was also created before I took an AI course and I have learned about abstract data structures, bitboards, and search tree pruning since then. This AI did improve upon the last in that it could search farther but it is not asymptotically faster. I plan on making another chess AI that should be capable of a significant increase in depth search.

Conway’s Game of Life

About Conway’s Game of Life

Conway’s Game of Life is a cellular automata that models cells on a (traditionally) square grid although other grids are possible. Each cell can be either “alive” or “dead” and its state affects its neighboring cells. Any cell that is alive stays alive if it has exactly 2 or 3 neighboring cells that are also alive. Any cell that is dead comes to life if it has exactly 3 neighboring cells that are alive. These simple rules result in surprisingly complex behaviour as cells on the grid are killed / spawned.
Gallery Image Gallery Image Gallery Image

Projects

I have used Conway’s Game of Life and variations of it in some of my projects.

For my graduating project at The School of the Art Institute of Chicago I created a grid of ultraviolet LEDs that were programmed to run Conway’s Game of Life. On top of the grid I placed GFP bacteria which glow green when exposed to ultraviolet light. The result was real life projecting a simulation of a mathematical representation of life.

While I was an intern at Leviathan I experimented with variations of Conway’s Game of Life. The variations were created for projections of the stages of Amon Tobin and Skrillex. This was done by unfolding 3D models of the stages, creating grids that matched the unfolded stages, and inventing rules for the cells in Processing.

About the Program

This program was written in JavaScript to be displayed on this website. It wraps the boundaries of the grid using a mathematical trick with modulo so that the cells behave as if they were on a torus.

Conway’s Game of Life 3D

Go to Processing Sketch: Conway’s Game of Life 3D

Open related: Conway’s Game of Life
Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image

About the Sketch

This sketch is a 3D variation of Conway’s Game of Life written in Processing. Normally Conway’s Game of Life uses a 2D grid and so new rules were invented for the 3D space as there are 26 neighbors instead of 8. Two different rule sets are used in this sketch based on the density of the bounding area. The reason two different rule sets are used is because otherwise the cells overexpand which looks messy visually. The cells in this sketch are bounded by a box (12*48*12) but other bounding volumes can be used.

Fractal Mountains

Go to Processing Sketch: Fractal Mountains
Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image Gallery Image

About the Sketch

This sketch was created in Processing using the Square-Diamond algorithm. The Square-Diamond algorithm produces a height map (which typically resembles an image of a cloud) and the height map is used to generate the mountains. The mountains are vertices of a 2D grid connected with triangles displaced in the third dimension with the height map data. Although the sketch is rendered in Processing it can be exported as a MEL script to be rendered in Maya.

Mandelbrot Set

Open program: Mandelbrot Set

Open related: Buddhabrot

About the Mandelbrot Set

The Mandelbrot Set is a fractal made by mapping pixel x, y coordinates to the complex plane. The x, y coordinates are treated as the real and imaginary components of c in the equation:
z = z2+c
In this equation, z and c are both complex numbers and so have a real and imaginary component. The equation is run through iterations and z takes on the new values. If z tends towards infinity (its distance from the origin of the complex plane is greater than 2.0) then the equation is stopped. The Mandelbrot Set is a visualization of the number of iterations each pixel passed through the equation.
Gallery Image Gallery Image Gallery Image

About the Julia Set

By using the same equation as the Mandelbrot Set but assigning c constant values for its real and imaginary components Julia Sets are made. There are an infinite number of Julias Sets although most that are of visual interest use values between -2.0 and 2.0 for c’s components. Real and imaginary values that are near the boundary of the Mandelbrot Set tend to produce interesting Julia Sets.
Gallery Image Gallery Image Gallery Image

About the Program

This program was written in JavaScript to be displayed on this website. Clicking on the fractal will zoom in by translating the mouse coordinates relative to the canvas to the complex plane. Fractals are rendered in 16 steps (instead of all at once) replacing the previous rendering each step. The advantage of this process is that it does not lock the browser in a long process and the user can see the fractal appear instead of waiting for a complete render. The disadvantage is that normalizing color techniques cannot be used and deeply zoomed areas may lack contrast. However, increasing the maximum number of iterations will produce an image with higher contrast at the cost of a longer rendering time.

Supermodern Labyrinth

Go to Project: Supermodern Labyrinth
Gallery Image Gallery Image Gallery Image Gallery Image

About the Project

This program was written in Unity to be played as a game although it was intentionally made to be very difficult to traverse. The game begins with two doorways in front of the player in a void. Either doorway can be entered but the other doorway becomes the exit after doing so. Once a doorway has been entered the goal is to navigate the space that appears and exit through the other doorway.

This program is part of a series of architectural navigation programs within a void. The space within the program is built from prefab architecture placed within a certain proximity to the player. The program plays with the spacial memory of the player as the layout of the space occasionally changes when not on camera and structures too far from the player disappear.

Although the goal of the game is to reach the exit the intention of the program is to simulate the feeling of being lost within an unfamiliar environment.