content1. (/)
(https://www.facebook.com/profile(http://www.linkedin.com/profi(mailto:yz463@drexel.ed
Home (/) Projects (/projects.html) My Life (/mylife.html) Software (/software.html)
______________________________________________
Procedural Content Generation in A4Engine
The goal of this project is to implement Procedural Content
Generation techniques, which are becoming more and more popular in recent
games, specially in the emergent genre of roguelikes (or even roguelikelikes)
In this project I worked with the A4Engine, a very simple engine for browser
based action RPG games written in JavaScript.
In this project, I implemented a procedural map generator for generating maps
for the A4Engine. You can choose whether you want to implement a generator
that generates dungeons, one that generates outdoors maps (with grass, rivers,
trees, rocks, paths, etc.), or one that generates indoor maps (like houses with
rooms, furniture, carpets, etc.). The method could be used to generate a playable
level that can be loaded with the A4Engine.
______________________________________________
RTS Game: Lord of Darkness
Lord of Drakness is a RealTimeStrategy game developed based on Santiago
Ontañón's S3 engine. LOD looks very simple and has pretty basic graphics, but it
features most of the characteristics of more complex RTS games such as
Starcraft.
Most of the graphics comes from other RTS games such as Starcraft and Age of
Empires Expansion. In order to run the game, please make sure that your
computers have Java JDK installed.
2. ______________________________________________
Strategic Decision Making in MicroRTS
The goal of the project is to implement a strategic module for an RTS
game. MicroRTS is a small implementation of an RTS game, designed to
perform AI research. The advantage of using microRTS with respect to using a
fullfledged game like Wargus or Starcraft (using BWAPI) is that microRTS is
much simpler, and can be used to quickly test theoretical ideas, before moving on
to fullfledged RTS games.
MicroRTS is deterministic and realtime (i.e. players can issue actions
simultaneously, and actions are durative). It is possible to experiment both with
fullyobservable and partiallyobservable games. Thus, it is not adequate for
evaluating AI techniques designed to deal with nondeterminism (although future
versions of microRTS might include nondeterminism activated via certain flags).
As part of the implementation, I include a collection of hardcoded, and game
tree search techniques (such as variants of minimax, Monte Carlo search, and
Monte Carlo Tree Search). More (https://code.google.com/p/microrts/)
______________________________________________
PathFinding in S3
S3, a simple RTS game designed to test AI techniques. S3 looks very simple and
has pretty basic graphics, but it features most of the characteristics of more
complex RTS games such as Starcraft.
The goal of this project is to implement a PathFinding algorithm to help unit
move. In this project I implemented A* for PathFinding, A* is a computer
algorithm (http://en.wikipedia.org/wiki/Computer_algorithm) that is widely used
in pathfinding (http://en.wikipedia.org/wiki/Pathfinding) and graph traversal
(http://en.wikipedia.org/wiki/Graph_traversal), the process of plotting an
efficiently traversable path between points, called nodes. Noted for
its performance (http://en.wikipedia.org/wiki/Computer_performance) and
accuracy, it enjoys widespread use.
However, in practical travelrouting systems, it is generally outperformed by
algorithms which can preprocess the graph to attain better performance, although
other work has found A* to be superior to other approaches.
3. ______________________________________________
The Physical Travelling Salesman Problem
The goal of this project is to implement Steering Behaviors, which are very
commonly used in computer games for controling cars, motorbikes, spaceships,
etc.
The game is "played" in a continuous 2D map, similar to the map of many
computer games, where there is a collection of specially marked waypoints. The
goal is to create a controller that can direct a spaceship through a map, and visit
all the waypoints in the minimum amount of time. The spaceship has the typical
controls: accelerating forwards, and turning left or right.
We are not interested in finding the optimal order in which to visit all the
waypoints, but just in selecting one waypoint, and controling the spaceship
(through an implementation of steering behaviors) to reach such waypoint. Once
the waypoint has been reached, the controller will select another waypoint, and
take the ship there. This process wll continue until all the waypoints have been
visited.
In this version of the game, the objctive is to drive the ship in a maze full of
obstacles in order to visit the waypoints scattered around the maze as quickly as
possible.
4. ______________________________________________
Mario AI Competition 2014
One of the main purposes of this competition is to be able to compare different
controller development methodologies against each other, both those based on
learning techniques such as artificial evolution and those that are
completely handcoded.
This version is played on randomly generated maps, so we have a practically
infinite number of different levels to play or test the AI. We are not interested in
finding the optimal behavior, but with authoring an acceptable behavior for
Mario.
In the project, I tried to create, using Behavior Trees, a controller for Mario that
tries to collect as many coins as possible, and kill as many enemies as possible.
As you will discover, Behavior Trees are not the best idea for this kind of game.
But precisely for that reason I've chosen it. The goal of this project is for you to
explore the possibilities of BTs and their limits. Discover what is easy and what is
hard to do with BTs.More (https://code.google.com/p/marioai/)
_______________________________________________________
Music Talks: A GUIbased Multiplayer Game
A music composing game involves different players in a band partnership
which all players have their own roles in the band; Guitar player, Drummer,
Keyboard players and Vocals, etc. Different roles are responsible for different
part of the music respectively.
A drummer, for example, can compose music based on different parts of a
drum, such as Bass Drum, Closed Hihat, Open Hihat, Acoustic Snare and
Crash Cymbal, etc. For Keyboard players and Guitar players, they compose
music by adding various notes on proper beats with their own tones.
After each role of a band finish their own part, all the parts of the music will be
combined to generate a complete music. And the music can be played by the
application, user can enjoy the music and change the speed of it. More
(/uploads/2/6/9/8/26981290/project_paper_yibo_zhang.pdf)
5. _______________________________________________________
Spam Call Mitigation by Machine Learning Caller’s Emotion
Recognition
I was inspired by the method of a paper that if we are able to enter into the
content of the call, we can even go further to analysis the emotion of the
caller. That is to say, we can decide the legitimacy of the call by analyzing
the emotion of the caller.
One general form of the spam calls is that the spammers try to cheat people
by tell something emergent which can make callees nervous. When callees
are nervous, they are very likely to trust the spammer’s words. That’s why
the emotions, in most of the spam calls, are always active and alert.
Therefore, if we can recognize the emotions of the calls (callers) and classify
them into different groups, then pick out the class whose emotion is always
active or alert, we can determine that calls in this group have very high
probability of being spams.
The variety of human emotional states and affects can be represented in a
threedimensional space, i.e. arousal, pleasure and power. The arousal
dimension, also named activation, refers to the degree of intensity, the
pleasure or evaluation dimension refers to how positive or negative, i.e.
pleasant, the emotion is perceived, and the power dimension relates to the
sense of control over the emotional state. In this project, I apply the Thayer’s
ArousalValence (AV) emotion plane (Thayer, 1989).
After extracting the features we want, we need to scale the features into the
AV plane to perform the emotion recognition. In this part, I implement the
Linear Regression method based on Support Vector Machine (SVM) as the
classifier to estimate the emotion. More
(/uploads/2/6/9/8/26981290/duplicationextensionyibo_zhang.pdf)
6. _______________________________________________________
A RePlanning System for Prostate Cancer Adaptive
Radiotherapy
The software we have developed integrates all algorithms for image
processing, dose calculation and plan optimization, in order to provide a re
planning system for Adaptive Radiation Therapy (ART), capable of
loading the original treatment plan for a patient (CT data, contours, plan
parameters, dose distribution, etc) and the new Cone Beam CT (CBCT)
images, and process these information to adapt the treatment to patient’s
new geometry.
The program is decomposed into several modules, such as: loading patient
data (original treatment plan, CT and CBCT images), image preprocessing
(structure identification, rigid registration, etc.), deformable image
registration based on demons algorithm, dose calculation and plan re
optimization. Each module has its parameters that the user can modify, and
a visualization window in order to verify or modify the results.
_______________________________________________________
“Freescale” Smart Car Design
In June 2011, teamed with another two students, I participated into the “Freescale
Cup” National Smart Car University Design Competition, where student teams
build, program, and race an autonomous model car around a track and compete
for the fastest time. The creation of this autonomous car requires knowledge in
circuitry, software design and control theory. Using Freescale 16bit micro
controller MC9S12XS128 as the core control unit, we designed control
mechanism and systems, including sensor signal collection and processing, control
algorithm and execution, driving motor and steering control, etc. We spent five
months in preparing for it.
7. _______________________________________________________
Computer Vision Project: Fingerprints Recognition
Fingerprints identification is the most widely used form of biometric
identification method. Everyone is known to have unique, immutable
fingerprints.
The background of this project is that an unknown person has stolen all the
undergraduate seating chairs from the second 4th floor lounge area after turning
the surveillance cameras off. Fingerprints, however, were taken from the crime
scene (FP1~5.png). The database of fingerprints as well as the fingerprints
extracted from the crime scene, were provided to analyze the fingerprints and
reveal the true identity of the perpetrator. The data base consists of 10
fingerprints (01~10.png) with fingerprints (FP1~5.png) acquired from the crime
scene. The goal of this project is to design an automatic classifier that can classify
fingerprints.
The goal of this project is to design an automatic classifier that can classify
fingerprints. As most Automatic Fingerprint Recognition Systems are based on
local ridge features known as minutiae, marking minutiae accurately and rejecting
false ones is very important. However, fingerprint images get degraded and
corrupted due to variations in skin and impression conditions. A critical step in
automatic fingerprint matching is to reliably extract minutiae from the input
fingerprint images. M
(/uploads/2/6/9/8/26981290/ece_s681_finalproject_winter2014_yibo_zhang.pdf)ore
(/uploads/2/6/9/8/26981290/ece_s681_finalproject_winter2014_yibo_zhang.pdf)
(/uploads/2/6/9/8/26981290/ece_s681_finalproject_winter2014_yibo_zhang.pdf)
(/uploads/2/6/9/8/26981290/ece_s681_finalproject_winter2014_yibo_zhang.pdf)
_________________________________________________
Tencent RTX (Real Time Exchange, Express,
Extension) SDK
Participated in the further development of RTX (Real Time
Exchange, Express, Extension), a kind of enterpriseclass
platform for realtime communication. Implemented
RTXServer functions such as SessionKeyLogin, Email
notification as well as Data Synchronization. Developed new
functions of real time video transmission through LAN, file
sharing, Electronic Whiteboard. More
(/uploads/2/6/9/8/26981290/rtxclient__step_by_step.doc)
_______________________________________________________
Operating System Virtual Memory Manager
This project consists of writing a program that translates logical to physical
addresses for a virtual address space of size 216 = 65,536 bytes.
The program will read from a file containing logical addresses and, using a TLB
as well as a page table, will translate each logical address to its corresponding
physical address and output the value of the byte stored at the translated physical
address. The goal behind this project is to simulate the steps involved in
translating logical to physical addresses. More
(/uploads/2/6/9/8/26981290/designing_a_virtual_memory_manager.pdf)