Dr. Steven Costiou

Research scientist Inria
16 software contributions.
Developer
  1. Ammolite Magenta (2021 - ...). Ammolite Magenta is a small application used by a few high school geology teachers to randomly build working groups with their students. The application allows for saving and tracking groups, as well as randomly pick one student to answer questions during classroom. storage
  2. Oups (2020 - ...). Oups is an improved debugger infrastructure for Pharo (integrated since Pharo 9). Oups facilitates the customization of the infrastructure by allowing developers to defins interchangeable debugger opening strategies to select which debugger to open. Oups also improves the resilience of the Pharo system when debuggers themselves encouter errors.
  3. Object-Centric Breakpoints (2018 - ...). A new implementation of Object-Centric breakpoints in Pharo. Those breakpoints only affect specific, singular objects. We can break when one specific object receives a specific message, or when the state of a specific object is read or written. Object-Centric breakpoints are integrated in the language since Pharo 9. storage
  4. StDebugger (2019 - ...). A new implementation of the Pharo debugger with object-centric features. This debugger is extensible and customizable through the Pharo Sindarin debugging API. It is integrated in the language since Pharo 9. storage
  5. ED (2020 - ...). Ed is an enhanced minimal emergency debugger for Pharo. Its goal is to provide a debugging tool with the less possible system dependencies to ensure that it can work even if almost everything else breaks. Ed is integrated into Pharo 9. storage
  6. Pharo-PiBorg (2017 - 2020). Robot control software (actuators, sensors, motors) and navigation algorithms based on Pharo Things. storage
  7. Object Miners (2017 - ...). A non-intrusive object-centric debugging approach (with its debugger) for acquiring, capturing and replaying objects. Miners acquire objects at run time from the sub-results of an instrumented expression. Miners capture objects with their execution context and replay them to freeze strategic parts of the execution, eliminating non-determinism. The Object Miners debugger is implemented in Pharo. storage
  8. Reflectivity object-centric extension (2017 - 2019). During my PhD, I defined how to extend a dynamically typed object-oriented language with unanticipated, object-centric behavior adaptation. I applied this work to Reflectivity, the reflective layer of Pharo. Reflective operations are now applicable at the granularity of single objects (since Pharo 8). storage
  9. Reflectivipy (2018 - ...). An implementation of Reflectivity in Python. The framework is deployed on the official python package repository PyPi. storage
  10. Debug Scopes (2018 - ...). An infrastructure for the unanticipated debugging of objects in a running program. This debugger is a research prototype that plugs itself in a running program, and allows developer to dynamically specify debugging behavior, to research and find objects of interest, and to apply the debugging behavior to those objects (with (de)activation conditions). This prototype is implemented with Pharo. storage
  11. MCP3008 (2017 - 2018). A Pharo library for interfacing with analog-digital MCP3008 chips on Raspberry-Pi micro-computers. storage
Contributor
  1. New Tools (2019 - ...). New Pharo IDE tools based on the Spec2 GUI framework. storage
  2. Pharo-Things (2019 - ...). Live Programming platform for IoT projects based on Pharo. storage
  3. Penfeld (2019 - 2020). Graphical components framework for Pharo. storage
  4. Reflectivity (2019 - ...). Reflectivity is the reflective layer of Pharo. It features sub-method, partial behavioral reflection and since Pharo 8 and the integration of my object-centric extension, is able to scope all reflective operation to the level of objects. storage
  5. Iliad (2010 - ...). An AJAX web framework for Pharo. I have been Pharo maintainer of Iliad in 2010, and since then I am an occasional user and contributor.. storage
Video Games

For a long time I wanted to create video games. I never really succeeded. In 2009 with friends from the university, we created a small group named MWDM minigames with the objective of creating video games. Often, our projects failed, but a few times we managed to create playable demos. This adventure ended in 2017. To remember it, I summarize below the best games we were able to create.

The Chronicles of Darth Wouf (2009)

Darth Wouf was a small platformer inspired by the universe of Star Wars. A small character, Wouf, had to run through a forest to escape many dangers. We produced a complete level, but the game crashed after a few seconds because of a bug. We dropped the project after leaving the university for professional work. We developed this game with Smalltalk. Game design, graphics and musics by Yann Plunian, development by Youenn Corre and Steven Costiou.

Tie-Galaxy Turbo (2011)

Tie-Galaxy was a shoot-em-up inspired by the universe of Star Wars. Players had to pilot a ship from the Galactic Empire and escape waves of Rebel starships. We developed this game in 2 days with Smalltalk, during a video-game development contest. In the end we could play a complete level to fight a dozen of successive ennemy waves. The binary is still somewhere on the web and playable on windows. Game design, graphics and musics by Yann Plunian, development by Youenn Corre and Steven Costiou.


Molecular (2014)

Molecular is a shoot-em-up in which players control a molecule traveling in space and fighting against other molecules for survival. We originally worked on a computer version using C++ and an Android version for mobile platform with Java (for which I was the developer). The mobile version was later abandonned to the benefit of the computer version. The C++ code is available online, compilable and playable on 3 complete demonstration levels. Game design, graphics and musics by Yann Plunian, C++ development by Youenn Corre and Android development (abandonned) by Steven Costiou.

Ploopy (2017)

A small complete game with a single infinite level in which Ploopy, a sad little rabitt, falls into a toxic waste recycler and has to constantly fight for survival. The player cannot win: the recycler accelerate indefinitely and an increasing amount of toxic waste keeps falling on Ploopy. The final score represents the number of meters that Ploopy survived in the recycler. Game developed with Unity. Game design, graphics and sounds by Miguel Prud'hom, development by Steven Costiou.