I already performed the following steps:
I read the wiki documentation about Cesium Architecture, Geometry and
I played with several Sandcastle examples, and I browsed the source code of
some Core and Scene interfaces.
I forked the Github Cesium repository and built the project successfully.
As a proof of my actual understanding of the Cesium API I tackled the
issue 416: 'TileMapServiceImageryProvider extent does not work'.
I committed a proposed fix to my fork . The fix I implemented intersect
the extent of each tile (of the imagery service provider tiling scheme) which
contains some part of the imagery with the imagery extent.
However I noticed that the extent of each cached imagery (an imagery for each
tile) has to be the extent of the tile and not the extent of the intersection.
I committed also a Sandcastle example (Test Imagery Layer) that I utilized for
I have not yet taken a final decision on which project idea to choose,
so I present some thoughts on both ideas. At the end there is a list of
my programming skills and experiences.
Any suggestions Cesium's mentors can provide me for making my SOCIS application
stronger is welcome.
*Orbit Tuner Application*
1) A geometry for creating an ellipse boundary on a given plane.
2) A user interface based on HTML5 for setting up the orbit parameters and
3) The user interface must have support for multiple orbits.
4) A satellite object represented by an image or a solid geometry can be
attached to the orbit and a simple simulation of its motion can be performed.
5) Source code will be cleary documented.
6) Tests will be performed on major browsers and platforms.
1) Are there more feature I should implement ?
2) I think that such a project can be completed in less than 3 months.
Am I missing something ?
3) I see that this project has not yet a mentor, could be possible to have one ?
*Particle System API*
1) An Emitter class supporting at least a sphere, a disc, a plane and a line
domain used together with a probabilistic distribution for generating the
initial particle attributes (position, velocity, color, ...).
Particle attributes will be stored into textures.
2) Supporting several kind of Actions: particle creation, particle killing,
force actions (gravity, wind, ...), particle position and velocity updating.
(through an Euler iterative integration method)
3) Collision detection algorithm and collision regions (at least a BouncePlane
4) Source code will be clearly documented.
5) Performance tests will be performed on major browser and platforms.
6) (optional) A sort algorithm based on viewer distance.
At present, I read several documentation, included a book about WebGL, anyway
I have not yet gained a complete understanding of the problem.
For the API interface the one sketched on Cesium wiki page is sensible and we
can always rely on McAllister's Particle System API and on the Flint particle
The collision algorithm will be for sure the most challenging part especially
from a performance point of view.
In 2008 I contributed to the Inkscape project. My contribution was about
implementing some geometry routines in C++ for lib2geom a 2D geometry library
born inside the inkscape organization and that has become the core geometry
library of Inkscape. 
In the last two years I contributed to the Document Foundation by implementing
a SVG export filter for Impress, the presentation program of the LibreOffice
suite (see , ).
The result of this project is that the user get a complete feature rich
presentation in a single SVG document that can be displayed in any enough
This result has been achieved by embedding a presentation engine implemented
This script is more than 10000 lines of code and one of the most challenging
and interesting part was the porting of the Impress animation engine from C++
For more details on this project you may give a glance to the log book I used
to update weekly . For a presentation sample you can look here .
I also implemented a multi-signature version of the Boost.Function library,
indeed it is a thin wrap around a boost function class. I never presented it
for review but the latest version of the source code is on the Boost Sandbox
, It was a good meta programming exercise. Documentation and tutorial can be
found at .
My university courses are essentially on mathematical subjects however I
applied for a course in programming and data structure and a course in
Why me ?
First off I have worked on a large code base as the one involved into the
LibreOffice project, so I am used to utilize git and in working with a team.
understanding source code of a not so trivial complexity.
Moreover from  you can get an idea of my habit to detailed log the delivered
source code. Finally  should be an example of how much I am good at writing