SURFER core development

proyecto

SURFER core development

Estado

Abierto

¿Cómo participar?

Check out the jsurf repository on github and contact the author. Contributions in form of expert knowledge without actually working on the source code are welcome as well.

Créditos

Christian Stussak

jsurf es el núcleo del programa SURFER y muchos otros proyectos para la visualización de superficies algebraicas reales. Es capaz de producir imágenes de una sola superficie algebraica de forma bastante rápida y buena. Este proyecto pretende ampliar las capacidades de jsurf hacia la represtación superficies implícitas múltiples con transparencias.

Resumen

El algoritmo de visualización de jsurf utiliza la fusión de rayos, es decir, que se basa en el cálculo de las intersecciones de la superficie y ciertos rayos de partida en el punto de vista virtual. La implementación actual sólo permite tratar con una única superficie para mejorar la velocidad de procesamiento. Las transparencias tampoco son posible, ya que sólo se determina la intersección más próxima al espectador.

Tareas

Para permitir múltiples superficies, la parte interna del proceso de fusión de rayos tiene que ser reescrita. Además, el formato del archivo tiene que ser extendido, o tal vez rediseñado desde cero, ya que ahora sólo  hay una lista de pares key-value. Por lo tanto, se tiene que escribir un programa de análisis para el nuevo formato de archivo.

Lograr las transparencias sin que disminuya el rendimiento requiere revisar los algoritmos que existen para entontrar las raíces reales de los polinomios en una sola variable. Un buen proyecto paralelo sería implementar los algoritmos de búsqueda de raíces para que también sirvan para funciones generales (¿diferenciales?). Esto puede ser el primer paso hacia la visualización de superficies generales implícitas.

Recursos necesarios

  • Superficies múltiples, transparencias: infografía, trazado de rayos, programación en Java
  • Formato de archivos: construcción del complilador/intérplete, programación en Java
  • Mejora en la velocidad: álgebra, análisis numérico, algoritmos y estructuras de datos, búsqueda de raíces de polinomios de una sola variable
  • Superficies implícitas generales:idual que lo anterior pero para métodos que no sólo sirvan para polinomios

Archivos