Scilab interactive plot editing (point and click)
Make a new style of plot tool, where the user can interact with it like
code-to-plot and plot-to-code. Pushing the plot to a new level, making it more like drawing tools. But all this, along with the variables data modified by dragging points, editing curves. Making new curves from points without the need to code and later expand to surfaces and 3d. However retrieve all data from graphics to scilab variables, with easy access to the user to compare, debug and modify.
As background improve the plot capacity and performance of GPU support with OpenGL .
The way to achieve:
First get stated with the scilab source code, make : compilations, try fix minor bugs, add minor functionalities, modify existing ones.
Implement data retrieve of single point, click and drag then test with multiples single points. Expand the same to curves and others entities. Each curve will be an entity with properties and will be stored as global.
This should be available within GUI and specific scilab functions
The objective is uses the mouse to move and edit the entities, and data will be retrievied by mouse selection + context menu and functions i.e ret(window, figure, entity_id, options, ...).
The editing options will appear when an entity is selected in a small box, the options would have keyboard shortcuts, all to facilitate the user interaction.
*Create the basic structure to retrieve single point data;
*Add drag and drop to single point;
*Add point modify options;
*Create the basic structure to retrieve curves data;
*Add drag and drop to curves;
*Add option to modify curves by a single point and multiple points.
*Modify will include: transformations
Rotate, Translate, Scale
Perspective, view point
*Add connecting options to points and curves;
*Test all what has done, review the ideas what work and not, modify if needed;
*Link the functionalities for scilab end-user;
*Add context menu and statistics for curves and pixels/points;
*Start work in the surfaces with curves points data
*Surfaces treatment: Surface Geometry
Rotate, Translate, Scale
Perspective, view point, point anchor
*Add the same options from curves/points to the surfaces.
*Test all things together;
*Find possible problems, bugs and fix then;
*Start improve the end-user functionalities to easy access
* menus, shortcuts, predefined functions.
*Try improve the performance without losing anything. Review all things done and release an alfa.
About me and why I chose this project:
Name: Caio Lucas dos Santos Souza (nick = Caio C2)
Age: 20 years old
Course: Engineering of Computation
Live: Brazil, Rio de Janeiro, (city) Nova Friburgo , Uruguaiana Street, nº 62.
My experience with scilab:
Already used it for many things, implement diverse algorithms, plot results, optimization algorithms, and i feel a lack of performace on UI_CONTROL and PLOT , and some bugs with resize. However it's a usefull tool, easy to teach, show algorithms and debug.
So, things i really like are logic, mathematics and computation, using creativity to solve problems and find new ways to reach solutions.
This project, i guess will be a step-ahead for me and all people involved, we will be always trying push our skills up and learning new things, sharing ideas and discussing then. And what I think is the most important pre-requisite is a willingness to do and having persistence. At the moment i just study and all days got some free time. My main projects were on numerical solutions for equations, diferential equations, interpolation, optimizations and simple graph.
*began familiarizing with GIT,
*I haven't an official job,
*Got 8h+ each day to work in the project all 7d/week,
*I haven't fixed any bug from scilab yet, but wish to do.
*(Independent of the GSOC, I will still try do the project for personal knowledge and study, because I never worked in a OpenSource, and all times we need a first time)
mainly C/C++, logic ,mathematics, familiar with scilab.
*Earn high skill on OpenGL and graphics/images creation and handling.
*Make a usefull tool for engineering and mathematics.
link to screenshot of compilation