Free and Open Source Projects

Below is an excerpt of my projects. Their source codes are publicly available and for free.
You're invited to view, clone and contribute to my projects at GitHub.com/Mobiletainment GitHub Repositories.

For a portfolio of other projects, please contact me.

Excerpt of My GitHub Projects

  • A* Pathfinding

    A* is a pathfinding algorithm commonly used in video games. In this example, you choose the start and end point of the route first. The algorithm then finds the path with the least costs between these points, considering that each tile has different costs or may be even unwalkable. Furthermore, you're able to navigate Pacman accross the field. Paths that cross Pacman's near surroundings (i.e. within Pacman's influence radius) experience increased costs and may get more expensive than a longer way around Pacman. The algorithm therfore dynamically re-evaluates pathes that cross Pacman's influence radius and adapts the route as necessesary.

    A* Pathfinding Screenshot

    How to play?

    • Begin by setting the start point. Move your mouse over the territory and click on the desired field. Note: black fields are considered unwalkable and can't be chosen as start or end point.
    • Next, position the end point by clicking on the desired field
    • The path with the lowest cost is calculated. The cost is determined by a heuristic considering the distance (horizontal or vertical moves count 1, diagonal moves 1.41), the cost multiplier of the field (1 = Street, 2 = Gras, 3 = Water) and the influence of the enemy (Pacman)
    • Use the arrow keys to navigate Pacman through the scene. The cheapest path is re-evaluated immediately on every move.
    FieldCost
    Road (white) 1
    Gras (green) 2
    Water (blue) 3
    Obstacle (black)
    Pacman's Position 16
    Near surrounding of Pacman Fieldcosts + 8
    Far surrounding of Pacman Fieldcosts + 4

    Requirements

    What you need for compiling:

    Source Code

    Get it   GitHub Repository

  • Remote debugging the Android native browser

    What is it?

    A debug-enabled WebView, allowing you to use Chrome DevTools to inspect and debug your web app while its running on your device.

    Why oh why would I need this?

    • Does your web site look broken on the Android stock browser?
    • Do you have Android specific defects you want to understand and solve?

    Debuggable Browser

    Description

    It sometimes happens that a web app doesn't work on mobile browsers, even though it's working fine on desktop browsers. Even worse, sometimes defects occur only on (certain) mobile devices, so you cannot simulate and reproduce it on a desktop browser. This is where remote debugging with Chrome's DevTools proves to be useful. While Chrome for Android perfectly supports this already, the Android stock browser doesn't. This is unfortunate, since a lot of Android bugs seem to occur only on the stock browser and not on Chrome anyways.
    So this app lets you run web sites within the native browser (WebView), while giving you the possibility to inspect and debug the page with the Chrome DevTools.

    How to enable remote debugging?

    1. Get a device running on Android 4.4 or higher
    2. Enable Developer Mode on your device and connect it to your PC/Mac
    3. Navigate to your web site by entering the URL in the app
    4. On your PC/Mac, open Chrome and type "chrome://inspect" into the address bar
    5. In Chrome, check "Discover USB Devices" and it will list the web page you've opened on your device
    6. Hit inspect and enjoy remote debugging the app with the Chrome Developer Tools

    Source Code

    Get it   GitHub Repository   Google Play Store

  • Conway's Game of Life Parallelized

    Computing Conway's genetic laws in parallel by distributing data accross multiple processing units. Performance benchmarks for OpenMP, OpenCL (CPU & GPU) as well as sequential execution.

    Conway's Game of Life Parallelized

    What is it?

    On the basis of a field with living and dead cells, Conway's genetic laws are applied to each cell and its next generation (state) is calculated. The rules are:
    • Birth: A dead cell with exactly three live neighbors becomes a live cell.
    • Survival: A live cell with two or three live neighbors stays alive.
    • Death: A live cell with four or more neighbors dies from overpopulation, with one or none neighbors dies from isolation.
    • Stable: In all other cases a cell remains unchanged.
    The Moore Neighborhood is used, resulting in 8 neighbours to each cell. Furthermore, the borders of the field are wrapped-around, so that even the cell at the North-West position of the field has a neighbour North-West to ist and so on. The application is built to compute fields with huge data and over many generations. Input is read and output written to text files. Example input files are provided.

    How to use?

    • Examples and test data are provided at the GitHub repository.

    Requirements


    Source Code

    Get it   GitHub Repository

  • Eight Queens Puzzle

    Possible solutions of the 8 Queens Puzzle are solved by a genetic algorithm. First, a population of 1000 genomes, each with a random solving constellations, is created. Then, 2 genomes with a high fitness (good solving constellation) are taken and their genes crossed and mutated to create successors with a hopefully better solving constellation.

    Eight Queens Puzzle Screenshot


    How to play?

    • Hit enter to calculate a new solution.

    Requirements

    What you need for compiling:

    Source Code

    Get it   GitHub Repository
  • Mastermind (Unity3D In-Editor Game)

    MasterMind is a code-breaking game. This one is built with Unity 3D and can be played WITHIN the Editor of Unity 3D. It was built to explore the extension capabilities of Unity 3D, and of course, to do a short game at any time while designing and creating games with Unity.

    MasterMind In-Editor Screenshot


    How to use and how to play?

    Copy the contents of the Assets Folder (except the MasterMind.unity file, which is the demo) into your Unity Project. Whenever you want to play MasterMind now, just drag the MastermindPlayable script onto any game object in your scene and watch a new component Mastermind appear in your editor. Choose the colors you want to set and click "Evaluate" to see if you guessed it right. Indicators (black = right color and right position, white = position doesn't match) as well as a winning message will visualize your match. After you're done, click reset to clean up your scene ;)
    For detailed gameplay rules have a look at the Wikipedia article

    Requirements


    Source Code

    Get it   GitHub Repository

  • On-The-Fly Configurable Shaders in Unity3D

    What is it?

    This project demonstrates on-the-fly configurable shaders in the free version of Unity3D 4.0, so no pro license needed!. All settings can be conveniently adjusted in a GUI while the game is running, e.g. turning on displacement mapping and adjusting the step size of the texture sampling.

    On The Fly Configurable Shaders in Unity3D

    Shader-Features

    • Emit particles with varying velocities and directions
    • Switch on soft shadows
    • Switch on bump mapping
    • Switch on displacement mapping
      • Configure displacement strength
      • Configure step size for displacement texture sampling
    • Choose reflection model
      • Enable Phong shading model
      • Enable Blinn shading model
    • Configure specular light intensity
    • Configure shininess (glossiness) for specular lighting
    • Configure light attenuation
    • Configure self-shadowing intensity
    • Configure diffuse light intensity
    • Configure ambient light intensity (e.g. day/night)

    All shaders are written in the shader language Cg with vertex- and fragment-shaders. No surface-shaders are used. Computation is performed entirely on the GPU instead of the CPU. The CPU's computing power can therefore be used to perform other computationally intensive work.


    How to play?

    InputAction
    W, S, A, D Move camera front (W), back (S), left (A) or right (D)
    Right mouse click & mouse movement Change view direction
    Left mouse click Shoot a ray in the view direction. If the ray hits an object, particles are emitted on the position of intersection (runs entirely on GPU)
    GUI controls adjustment Adjusting the values of the GUI controls results in an immediate update of the shader properties. You'll instantly see the new effect or the change in the used shader technique

    Requirements

    • Unity 3D 4.0 or above
    • Grahpics card with shader model 3.0 or above
    • OS: Windows, Mac OS X or a Linux Distribution (Multiplatform-support)

    Documentation

    For a detailed description of the project and the techniques used, please have a look at this documentation (German).

    Source Code

    Get it   GitHub Repository

  • Pacman

    Pacman is an arcade game which greatly offers the chance to explore reactive artificial intelligence. If not patroling their home area, the ghosts actively react to Pacman's position and pursue Pacman with distinct strategies.

    Pacman Screenshot


    How to play?

    • Control Pacman's direction via the arrow keys or with the keys w (forward), s (backward), a (left) and d (right)
    • Switch between Pursuit and Patrol mode with the Space key
    • Enable automatic Pursuit/Patrol mode switching by pressing the key 1.
      Disable it with 2

    Requirements

    What you need for compiling:

    Source Code

    Get it   GitHub Repository

  • Real-time Rendering with DirectX

    What is it?

    A small application demonstrating Shadows, Bump Mapping, Anti-Aliasing and a Quaternion Camera under DirectX 10. Besides using the keyboard and mouse to navigate through the scene, there's also a journey mode in which the camera automatically traverses control-points on the basis of a Catmull-Rom interpolation. Furthermore, the view's direction follows a spherical linear interpolation.

    Real-time rendering in DirectX 10

    How to play?

    KeyAction
    ESC Exit
    W, S, A, D Move camera front (W), back (S), left (A) or right (D)
    Arrow Keys Move light front (↑), back (↓), left (←) or right (→)
    Mouse movement Change view direction
    Q, E Roll camera left (Q) or right (E)
    SPACE Save current position as control-point for interpolated camera journey
    ENTER Start interpolated camera journey (requires at least 4 saved control-points
    1 Activate Bump Mapping and Shadow Mapping
    2 Activate Shadow Mapping only
    3 Enable wireframe mode
    4 Disable wireframe mode
    5 followed by 6 Toggle Multisampling anti-aliasing (MSAA); Sample-Count at beginning: 8x

    Requirements


    Source Code

    Get it   GitHub Repository

 

София Дървени материали

София Дървени дъски