Projects

This page is dedicated to a selection of my hobbyist projects.

Since I am a software engineer, most of these projects are software related.

Some projects that are not mentioned here can be found on my Github page.

Lectures

Here are presentations of lectures I had given to my colleagues in the past:

  • Creativity - An introduction to SIT method.
  • Famous Bugs - Bugs that were discovered in production and caused substantial amount of damage.
  • RGB LEDs for Makers - Introduction to individually addressable LEDs. Presented in a makers un-conference.

Spline Module for AGS

This is a module for AGS (Adventure Game Studio) engine.

This module provide two related functions:

  1. The ability to draw splines.
  2. The ability to create a spline path that can be used for animations.

It uses Catmull Rom for calculating the splines.

Drawing splines. Use splines for animation.

Sports Arena Portable

This is an Arduino project that use Arduino Mini Pro, WS2812 LED ring, a buzzer and a vibration actuator. My first project that use perfboard and soldering.

Internals of the toy Example of failing the game

Hints Highlighting for AGS

This module for AGS (Adventure Game Studio) adds an overlay which highlights all the visible and clickable objects, hotspots and characters.

Screenshot from AGS

Light the Room

The team of programmers, artists and a sound designer was formed ad-hock by the Jam organizers. We used Unity as our game engine.

Main menu of the game Demo of the gameplay

Linux Kernel Modules with Ada

My attempt to develop Linux Kernel Modules using the Ada programming language.

This is a proof of concept that I am still working on it. My goal is to demonstrate the usefulness of Ada's strong typing system for this kind of application.

Follow my blog to see how I progress.

CelloWar

This is a turn based, two-player game for Android. It was created during Global Game Jam 2018.

For the client part, we did not use anything beyond what Android's NDK provided. All the graphics are drawn on a Canvas.

For the game server, we used Tomcat and implemented our own queueing protocol.

Screenshot of the CelloWar game.

Let There be Light

This game was created during Global Game Jam 2017. We used Construct 2 as the game engine.

Moving the mouse up and down will alter the path that the glowing moon is following. The player must guide the moon to consume the glowing orbs, otherwise it will fade and die.

Screenshot of the "Let There be Light" game

Ada Curve

A little demonstration of different spline constructing algorithms. The included algorithms are: De Castelijau (Bezier curves), De Boor (B Splines), Catmull Rom and Lagrange Interpolation (both on equidistant nodes and on Chavyshev nodes).

Ada programming language is used and the graphics are done with OpenGL bindings to Ada.

Knockyo is a word play of Knock and Tokyo. Unfortunately our hosts, the Murata corporation is HQ in Osaka.

Knockyo

  • Description: A toy built with "Arduino" and "Murata" sensors.
  • Year: 2015
  • Source: Download
  • Partners: Evyatar Tamir, Daniel Zhitomirskii, Nadav Weiss

This is a toy that was developed during a hackathon sponsored by “Murata”, a Japanese hardware manufacturer.

We used an Arduino with sensors produced by Murata to create a rhythmic toy.

After the toy plays a sound pattern, the player has to tap on the mini drum in a way that reproduces the same pattern. The accuracy of the reproduction determines the score which is displayed on a neopixel ring. A light sensor is used for hand gesture input commands such as starting a game or recording a custom sound patterns. Murata's shock sensor is concealed in the drum.

Remeber: Knockyo is the best Game in Tokyo!

Knockyo is the best toy in Tokyo!

Iava

  • Description: Developing a custom language called Iava
  • Year: 2012
  • Source: Main project, Eclipse plugin
  • Partners: Hadar Sivan, Alex Ilgayev, Alex Prutkov, Shai Barad, Pavel Kharakh, Bar Weiner, Arnon Yogev

This was done during the "yearly project in software engineering" at the Technion.

In this project we developed a custom language that has similar but simpler syntax as Java. We developed the "whole package": compiler, standard library, a plugin for Eclipse and a manual.

The focus of this project was not the technology but rather practicing sound software engineering techniques.

We used Trac to manage our work and svn for source control. Tracs's wiki was used for internal documentation. We also wrote formal design documents.

As per requirements of our professor, we organized our work into several iterations, with a demo and review of the system at the end of each one.

Big effort was put into testing. We did automatic tests at every level and for every component of our system.

High level design diagram of our IAVA building system

Spartanization Plug-in for Ecplise

Spartan programming is a coding style which tries to minimize the elements of code.

I developed an eclipse plugin that allows to perform three automatic refactoring commands that will make your code more "spartan".

My professor continued to offer a project course for expanding the plugin. The final product which is the work of many students can be found here and it is much more advanced than my version.

Refactoring ternary expressions

3D Model Viewer

This is a 3D model viewer with many features that demonstrate what we learned during our computer graphics course at the Technion.

The highlight of our viewer was the ability to render images in cell shading style (aka toon shading). We tuned this shader to produce images that look like manga drawings.

Demonstration of cell shader we developed Another demonstration of cell shader we developed