User:JoaquinDuo/Google Summer of Code 2007

From K-3D

Jump to: navigation, search

Integrating K-3D with other applications

As you will notice I am big fun of software integration. So here you will find some combinations that i find very useful which are not yet develep.

As I explain below in the GIMP example porting the mentioned programms to the K-3D engine gives them two important features:

  1. Procedural generation (n vs n2 user time).
  2. Animation capabilities. (the parameters of the procedures can be animated)

I believe this two features are quite powerful and are quite simple to obtain just by porting data type and data functionst to K-3D.

K-3D + GIMP

News!: Gimp is actually pointing towards using Gegl wich has a lot to do with this idea. This should turn a bit the direction of this project and make faster its development.

Mentor: Joaquin Duo, joaduo@gmail.com
Description: Give GIMP the advantages of procedural generation. In the current GIMP if the user wants to change a parameter that is on the history of the creation s/he will have to undo all the steps after it, change the parameter and redo (but not automatically) the steps after that change. Instead, on procedural generation the user goes back on the "node history" (object stack) and simply changes the value. On the fly it is calculated and displayed to the user.
Lets suppose there is a photo of n number of steps to create it. That means the steps to recreate the image without having to undo and redo (as if the user knows what s/he wants as the final image without any undo). Now the true is that the user will do a lot of trial and error with the undo/redo tools until s/he came with the final result. If the users do a lot of undo/redo steps the real number of steps made by the user will be proportional to . While in a procedural image editor it will be proportional to n. As we can see if the image is very complex the proportion between one user using procedural and other using non-procedural grows linearly proportional to n. That means one user will do it n times faster.
Another important addition to GIMP is the animation capabilities acquired just by porting GIMP to the K-3D engine. We could animate one parameter of a filter and render an animation of the image across this filter variation.
Prototype Images:

Goal: Create a Gegl front end using K-3D, ports and extend its data types, filters and tools. Encourage interproject collaboration and integration (GIMP and K-3D). Attract more K-3D users and developers.

Requirements: A successful project will require strong C++ experience, and a knowledge about Glib, Gegl and GIMP.

References:

K-3D + Math Geometry (Kig or Drgeo)

Mentor: Joaquin Duo, joaduo@gmail.com

Description: Integrate Kig or Drgeo with K-3D. Probably you had heard of Cabri, if not Kig and Drgeo are programms similar to Cabri.
As you may already have guess the idea is to mimic the same functionality of Kig (let's use Kig as an example) in K-3D. It would be Kig plus procedural generation, with its already mentioned advantages. Besides the Student could extend Kig's functionalities with 3d capabilities.
Once the Kig data could be represented in K-3D the next step would be to convert this data to K-3D compatible data. Id est, 2D and 3D data representation in that way user can apply modifiers and edit the data.

Goal: Port geometry visualization data types, "engine" and tools to the K-3D engine. Encourage interproject collaboration and integration (Kig, Drgeo and K-3D). Attract more K-3D users and developers.

Requirements: A successful project will require strong C++ experience, and a knowledge about a geometry visualization package.

Links

K-3D + Functions plotting (k3dsurf, etc)

Mentor: Joaquin Duo, joaduo@gmail.com

Description: Integrate a 3D function plotter with K-3D. K3dsurf is a 3D function plotter is quite featureful. As you may guess you should port all the tools from k3dsurf to K-3D.
Furthermore, porting k3dsurf is quite easy, so besides porting k3dsurf, the student should create tools for math functions to complement the project.

Goal: Port k3dsurf (or other program) function plotting tools to the K-3D engine. Encourage interproject collaboration and integration (Kig, Drgeo and K-3D). Attract more K-3D users and developers.

Requirements: A successful project will require strong C++ experience, and a knowledge about math and k3dsurf (or other plotting program).

Links


Personal tools