Está en la página 1de 11

ENTORNO PARA EL APRENDIZAJE DEL DISEO NAVAL

Humberto Martnez Barber Dep. de Informtica y Sistemas Facultad de Informtica Universidad de Murcia e-mail: humberto@fcu.um.es Germn Villalba Madrid Dep. de Informtica y Sistemas ETS Ingenieros Industriales Universidad de Murcia e-mail: germanv@sait01.plc.um.es

RESUMEN En este trabajo presentamos SDN, un sistema CAD para el diseo naval, orientado especficamente a veleros. Debido a la complejidad de la mayora de los entornos de diseo de naval disponibles, el uso de los mismos no suele ser incluido en los distintos curricula de Ingeniera Naval. Se mostrar una comparativa con diferentes programas comerciales, para as justificar el desarrollo del SDN. Los aspectos ms importantes que se han tenido en cuenta a la hora del desarrollo han sido la eficiencia, la eficacia y la facilidad de uso, todo sin restringir los posibles modelos. Los modelos representarn a barcos y partes de los mismos, para cuya descripcin se han utilizado superficies NURBS, pues permiten conseguir un buen control sobre las formas navales. Se han estudiado los mecanismos para ocultar al mximo las caractersticas de las estructuras de datos utilizadas, as como las operaciones especficas sobre modelos navales, que no estn presentes en sistemas CAD de propsito general (aun basados en NURBS). Hemos implementado un prototipo que se ajusta a los planteamientos, que ha sido y est siendo probado para el diseo real de veleros.

INTRODUCCION En el diseo de embarcaciones propulsadas a vela intervienen una multitud de tcnicas provenientes de diferentes reas de la Ciencia y la Ingeniera. Entre ellas encontramos Teora del Buque, Dibujo Naval, Dinmica de Fluidos y Resistencia de Materiales. Debido a la complejidad de los factores que intervienen en el proceso de diseo, se han estudiado diversas soluciones a los diferentes problemas, aunque de forma separada. En el campo del Diseo de Formas, a principios de los aos 70 (MacCallum 1972) mostr que el ordenador sera una herramienta muy importante, casi esencial. Desde entonces, tanto el software como el hardware han evolucionado, pasndose de los primeros sistemas basados en parches de Bzier (MacCallum 1972) a los paquetes de CAD modernos basados en B-Splines (Rogers y Satterfield 1980) y NURBS (Larsson 1990). Adems, en paralelo se ha conseguido una evolucin importante en otras reas como en CFDs (Computational Fluid Dynamics) y VPPs (Velocity Prediction Programs) (Larsson 1990). Si bien se han conseguido avances importantes desde el punto de vista de la interaccin hombre-mquina, la realidad es que la mayora de los sistemas de diseo naval son muy poco intuitivos y/o presenta

serias restricciones con respecto a los modelos navales. Adems, desde el punto de vista didctico, debido a la complejidad de dichos sistemas, el estudiante ha de dedicar ms tiempo al aprendizaje de los programas que practicando los conocimientos adquiridos, relegando el uso de los mismos a profesionales. Sobre estos hechos, se plante el desarrollo del sistema SDN (que corresponde a Sistema de Diseo Naval) teniendo en cuenta los siguientes objetivos: - conseguir un software intuitivo y fcil de usar por el ingeniero naval (o estudiante), de forma que el programa se adapte al modo de trabajo del ingeniero, y no al revs. De esta forma, el alumno puede, tras un periodo de aprendizaje muy pequeo, comenzar a trabajar en modelos relativamente complejos. - que dicha simplicidad no implique prdida en la potencia expresiva del sistema, de forma que se puedan satisfacer requerimientos profesionales, y as poder modelar desde monocascos a multicascos. - el software debe ser modular y fcilmente escalable, de forma que pueda incluir la mayor cantidad de aspectos del proceso de diseo, y en caso de falta de alguna caracterstica, que se pueda disponer de enlaces con otros programas. - el software debe poder ejecutarse desde en un ordenador personal de gama media hasta en una estacin de trabajo. Para ello ha de ser multi-plataforma, y lo ms eficiente posible. Este requerimiento es muy importante, ya que el hardware disponible para los alumnos en las distintas Escuelas Tcnicas suelen ser ordenadores personales. Antes de realizar la implementacin propiamente dicha del SDN, revisamos una serie de entornos disponibles para el diseo naval en ordenadores personales. Las caractersticas que evaluamos son: eficiencia, eficacia, facilidad de uso y potencia en el manejo de superficies. Dichos sistemas se presentan a continuacin. - MacSurf v5.07 (Macintosh): Graphic Magic Ltd. Basado en superficies NURBS. Siempre recalcula cuando redibuja (un poco lento en un MC68040/25). Dibujado de la malla altamente personalizable. Operaciones estndar para la modificacin de superficies (adicin, borrado, traslacin, rotacin, duplicado, modificacin de atributos, agrupamiento). Operaciones estndar sobre los puntos de control (insercin y borrado por columnas, entrada manual o por ratn, control fcil). Clculos bsicos (curva de reas, hidrostticas bsicas). No incorpora clculos de estabilidad, renderizado, ajuste a formas definidas por el usuario, mdulos especficos para apndices y velas, ni un entorno grfico intuitivo. - MultiSurf 2.10 (Windows-32): AeroHydro Inc. Basado en superficies NURBS. Siempre recalcula cuando redibuja (muy lento en un i80486SX/25). Dibujado de la malla personalizable, con renderizado opcional. Operaciones restringidas para la modificacin de superficies (adicin, borrado, modificacin de atributos), con un procedimiento de creacin muy complejo (se ha de conocer la representacin interna de las NURBS). Operaciones restringidas sobre los puntos de control (entrada manual o por ratn). Clculos bsicos (hidrostticas bsicas, momentos de inercia, normal de la curvatura). No incorpora clculos de estabilidad, transformaciones adecuadas sobre las superficies, ajuste a formas definidas por el usuario, mdulos especficos para apndices y velas, ni un entorno grfico intuitivo.

- Prolines 6.0 (Windows-16): Vacanti Yacht Design Ltd. Basado en superficies BSpline. Siempre recalcula cuando redibuja (muy lento en un i80486SX/25) y cada vez que se selecciona una ventana. Dibujado de la malla personalizable, con renderizado opcional. Operaciones bsicas para la modificacin de superficies (adicin, borrado). Operaciones bsicas sobre los puntos de control (insercin y borrado por columnas/filas, entrada manual o por ratn, control fcil). Clculos completos (curva de reas, curva de superficie mojada, hidrostticas bsicas, estabilidad, arrastre en olas). No incorpora renderizado, transformaciones adecuadas sobre las superficies, ajuste a formas definidas por el usuario, mdulos especficos para apndices y velas, ni un entorno grfico intuitivo. - HullForm 6.0 (Windows-16): Blue Peter Marine Systems Pty. Ltd. Basado en curvas de Bzier (sin parches), una para cada cuaderna. Siempre recalcula cuando redibuja (rpido en un i80486SX/25). Manejo muy complicado de los puntos de control, restringidos a formas bsicas. Clculos completos (curva de reas, curva de superficie mojada, hidrostticas bsicas, estabilidad, arrastre en olas). Mdulo de renderizado. No incorpora un interface orientado a las superficies, ajuste a formas definidas por el usuario, mdulos especficos para apndices y velas, ni un entorno grfico intuitivo. Teniendo en cuenta estas caractersticas hemos desarollado un prototipo, ajustndonos a los objetivos sealados en la seccin anterior, y con las siguientes caractersticas: - SDN v0.5 (Macintosh): Basado en superficies NURBS. Slo recalcula cuando se modifica un punto de control (un poco lento en un MC68040/25). Operaciones estndar para la modificacin de superficies (adicin, borrado, traslacin, rotacin, escalado, duplicado, modificacin de atributos). Operaciones mejoradas sobre los puntos de control (insercin y borrado por columnas/filas, entrada manual o por ratn, control fcil, agrupamiento, alineado, ajuste a formas definidas por el usuario). Clculos completos (curva de reas, curva de superficie mojada, hidrostticas bsicas, estabilidad y momentos de inercia). Interface muy intuitivo, con mdulos especficos para el diseo de apndices y velas. No incorpora renderizado, ni dibujado personalizable de la malla. Para el desarrollo de SDN hemos estudiado y trabajado dos lneas distintas: - conseguir un sistema CAD especializado, con una interaccin hombre-mquina fluida e intuitiva: las operaciones han de ser simples (en cuanto a manejo de las mismas), completas (deben de ser suficientes para las tareas de diseo naval), y adecuadas (en cuanto a la fase del diseo en que se trabaje). - conseguir un sistema lo ms optimizado posible, de forma que se pueda obtener un buen rendimiento del mismo y una implementacin en gran cantidad de plataformas. En las secciones siguientes analizaremos cada una de estas lneas. Para finalizar sealaremos algunas de las mejoras sobre las que estamos trabajando.

INTERACCION HOMBRE-MAQUINA Cuando se describe un casco o un apndice geomtricamente (en tres dimensiones), los resultados ms aproximados se obtienen por medio de NURBS (Piegl y Tiller 1995), puesto que pueden modelar cualquier superficie naval (e.d., las formas que presentan las embarcaciones). Hay una gran cantidad de sistemas CAD de propsito general, pero desde un punto de vista prctico (por falta de expresividad) no se pueden utilizar para el diseo de embarcaciones. Los motivos principales son: la imposibilidad de trabajar con NURBS y de obtener parmetros de un barco, imprescindibles en el diseo (medidas, coeficientes, ratios, curvas, puntos caractersticos) (Brewer 1994). Adems, la incorporacin de mdulos externos (pluggins) no es sencilla (en los que sta es posible), y adems elimina la posibilidad de disponer de un interface sencillo e intuitivo. Hemos implementado SDN haciendo uso de la NURBS Cambridge Library (Hewitt y Yip 1992) sobre el sistema de CAD 3D desarrollado en nuestro proyecto RDS (Martnez y Skarmeta 1995) y sobre las libreras grficas multi-plataforma Open Interface de Neuron Data (Neuron Data 1993). De esta forma, se pueden modelar de forma precisa todas las partes (objetos) de un velero (alerones, quillas, cascos, velas, timones). Cada objeto se representa mediante una o ms NURBS, que se pueden transformar haciendo uso de operaciones comunes (traslacin, rotacin, escalado), implementadas por medio de operaciones matriciales clsicas. Con esto SDN no slo permite disposiciones clsicas de casco-apndices, sino tambin modernas, como las presentes en multicascos, hidrofoils, quillas aladas y con bulbo tipo Copa Amrica. Estas caractersticas son bastante buenas desde un punto de vista ingenieril, pero desde la perspectiva del usuario final es necesario un interface intuitivo, para aumentar la productividad y reducir el tiempo de aprendizaje. Para conseguir esto, el sistema CAD debe de ocultar la representacin interna de los modelos, de forma que el usuario no tenga que conocer los vectores de nudos U-V y dems . Hemos intentado mantener el manejo del SDN lo ms cerca posible del mtodo de Diseo Naval, basndonos en un proceso top-down-top. Este nos permite partir de vistas genricas, donde podemos definir las relaciones entre objetos, acceder a vistas ms especializadas, donde podemos modificar las caractersticas de un objeto, para acabar volviendo a las vistas genricas, donde podemos modificar las relaciones entre objetos. Para ello, el interface est dividido en mdulos funcionales (figura 1), cada uno diseado para una tarea especfica. Los mdulos estn organizados en niveles, de forma que en el primer nivel se tiene acceso a todos los objetos (top), en el segundo se tiene acceso a un objeto (vela, apndice o casco), y en niveles superiores se tiene acceso a caractersticas o partes de un objeto (clculos, ajuste).

Top View

Hull

Sails

Apendages

3D View

Hydrostatics

Stations

Print

Profiles

Print

Stability

Calculations

Print

Figura 1: grfico jerrquico de los distintos mdulos/niveles del sistema.

Las operaciones y las acciones del usuario son slo vlidas referidas a un dominio especfico. As, cada nivel presenta operaciones estndar y un conjunto exclusivo de operaciones. Esto se puede ver como un sistema orientado al objeto, donde el nivel superior correspondera a la clase padre, y los distintos niveles seran especializaciones de los anteriores. Esto es lo que pensamos que realmente refuerza la intuitividad del interface, pues no es slo cuestin de introducir ms o menos iconos bonitos, sino que el mtodo de trabajo CAD est claramente definido, y que se ajuste al que se pretende automatizar (que el ingeniero naval conoce de antemano). Por ejemplo, cuando se imprime desde el mdulo de apndices el resultado difiere del obtenido desde el mdulo de las cuadernas, y en ambos casos el resultado es el que cabe esperar (desde el punto de vista del ingeniero naval). Desde el punto de vista puramente funcional, se puede disear una vela desde el mdulo de apndices (puesto que todos los objetos estn basados en NURBS), aunque sera ms complicado. Esto es una gran ventaja que el usuario consigue con SDN: el modelo de datos es uniforme a travs de los distintos mdulos, pero cada mdulo est especializado en una tarea.

A continuacin se muestran dos instantneas del software SDN (figuras 2 y 3):

Figura 2: Vista General. De aqu se accede a los restantes mdulos.

Figura 3: Vista de Cuadernas.

Estas instantneas corresponden a otros tantos nodos del grafo (figura 1): la Vista General (figura 2), y Vista de Cuadernas (figura 3). En la primera se pueden observar todos los objetos presentes en el sistema (un casco, un timn y una quilla). Se puede seleccionar el mtodo de proyeccin (alzado, planta, perfil). En el mdulo de cuadernas se encuentran tres zonas: la de edicin, la caja de cuadernas, y el perfil de cuaderna. El mtodo de proyeccin es fijo, pues es el ms practico a la hora de realizar las tareas especficas del mdulo. Otros mdulos presentan opciones y caractersticas distintas, si bien las operaciones similares se representan por iconos similares.

EFICIENCIA DEL SISTEMA Para obtener un resultado eficiente, en base a los requerimientos y caractersticas sealadas anteriormente, y debido a la naturaleza de los modelos utilizados (NURBS), se han de trabajar dos aspectos bsicos del sistema: la representacin y dibujado de las NURBS, por un lado, y la gestin de la memoria, por otro. El primer aspecto es muy importante en un entorno grfico, ya que la mayora de las operaciones conllevan un redibujado de algn objeto. El segundo aspecto no es menos importante, puesto que los objetos se almacenan en memoria, y cada vez que son recalculados es necesario liberar y reservar gran cantidad de bloques. A continuacin se describirn los problemas que hemos tenido que solventar sobre dichos aspectos. A partir de la definicin de una NURBS, se genera una malla de segmentos de lneas tridimensionales, que son los que, en definitiva, ve el usuario. La operacin de generacin de la malla es muy lenta, pues requiere muchos clculos. Teniendo esto en cuenta, hemos diseado el sistema para minimizar el nmero de dichas operaciones, a base de utilizar mucha ms memoria de la mnimamente imprescindible. De esta forma se consigue un aumento sustancial en el rendimiento del sistema (con el valor aadido de que la memoria es ms barata que un procesador ms potente). As, para cada NURBS del sistema, definimos una estructura conteniendo la descripcin de la superficie (en trminos de nudos U-V y puntos de control), la malla tridimensional, y una serie de propiedades del objeto acerca de su color, visibilidad, etc. (figura 4). Este tipo de estructura es muy til para el redibujado, pues slo se necesita recalcular la superficie cuando cambia su forma (aadiendo, borrando o desplazando puntos de control). Todas las estructuras de los objetos se almacenan en una lista enlazada.

Object

#1 3D Mesh

Object

#2 NURB Properties

Object

#n

Figura 4: descripcin de las estructuras de datos de los objetos.

Como se seal con anterioridad, la traslacin, rotacin y el escalado se han implementado haciendo uso de algoritmos clsicos matriciales. Para aplicar las transformaciones, y gracias a la propiedad de invariabilidad por transformacin (Piegl y Tiller 1995) de las NURBS, podemos utilizar dos mtodos: aplicar la matriz de transformacin tanto a la malla como a la NURBS (figura 5a), o aplicar la matriz a la NURBS y despus calcular la malla a partir de sta (figura 5b). Hemos comprobado que el primer mtodo es mucho ms rpido, siendo ste el que se ha usado finalmente. Adems, gracias a la estabilidad numrica de las NURBS (Piegl y Tiller 1995) y a la precisin utilizada para realizar los clculos, tras una serie de transformaciones los objetos no sufren deformaciones apreciables. Esto es importante ya que pretendamos conseguir la mayor rapidez posible, pero sin prdidas en la representacin.
m11 m12 matrix : = m13 m14 m 21 m 22 m 23 m 24 m 31 m 41 m11 m12 matrix : = m13 m14 m 21 m 22 m 23 m 24 m 31 m 41

m 32 m 42 ; m 33 m 43 m 34 m 44

m 32 m 42 ; m 33 m 43 m 34 m 44

for i := 1 to maxpoints (mesh) do apply_transform (mesh.point[i], matrix); done; for i := 1 to maxpoints (nurb) do apply_transform (nurb.point[i], matrix); done;
Figura 5a: primer mtodo para aplicar transformaciones.

for i := 1 to maxpoints (nurb) do apply_transform (nurb.point[i], matrix); done; draw_mesh (nurb, mesh);
Figura 5b: segundo mtodo para aplicar transformaciones.

Una propiedad importante de la mayora de los elementos de un velero es su simetra con respecto al plano XZ. Por este motivo se ha aadido, como propiedad seleccionable en los objetos, la simetra en XZ. Para implementar esta caracterstica, entre otras, tenemos las siguientes opciones: generar una NURBS simtrica (rotando 180 grados) y calcular su malla, o bien calcular la malla simtrica de la generada por la NURBS. La segunda parece la opcin ms razonable, pues la generacin de la malla consume mucho tiempo. Un problema adicional a ambas tcnicas es qu ocurre a ambas mallas cuando se produce una rotacin. (figura 6). Puesto que la rotacin ha de aplicarse al objeto entero, y no de forma independiente a las dos mallas, no se puede aplicar la simetra a la malla que se ha rotado, ni rotar la anterior malla simtrica sobre el mismo centro de rotacin (se obtendra el mismo resultado). Para tener en cuenta este efecto, se define como una de las propiedades de los objetos el vector de rotacin (rot_vec), el cual se inicializa con el valor [0, 0, 1]. De esta forma, el ngulo entre el valor inicial y el valor actual de rot_vec, es el ngulo total que el objeto ha sido rotado desde su creacin. Para calcular la malla simtrica del objeto, se ha de aplicar el algoritmo mostrado en la

figura 71. Este mtodo es bastante rpido, puesto que slo necesita 6 operaciones matriciales y una transformacin de malla (aplicada a cada punto de la malla original). Todas las operaciones en el sistema se realizan en un espacio tridimensional, y slo cuando es necesario dibujar alguna lnea (de las que componen las mallas), se realiza la conversin de 3D a 2D. Para ello, se cuenta con cuatro funciones de proyeccin: alzado, planta, perfil, y perspectiva. Estas funciones se han optimizado al mximo puesto que son llamadas, una gran cantidad de veces, cada vez que se redibuja un objeto. Adems, las rutinas de captacin de datos convierten la entrada de 2D (del ratn o de la tableta digitalizadora) a 3D2. Todos estos tipos de conversin se realizan principalmente para permitir implementar un mdulo VR (Virtual Reality) , sin la necesidad de tener que alterar ninguno de los dems mdulos del sistema. mesh := origmesh; min := min_point_Y (mesh); matrix := unitary_mat (); rotate_v_mat (matrix, [0, 0, 1], rot_vec); trans_mat (matrix, [0, -min.y, 0]); rotate_d_mat (matrix, [0, 180, 0]); scale_mat (matrix, [1, 1, -1]); trans_mat (matrix, [0, min.y, 0]); rotate_v_mat (matrix, rot_vec, [0, 0, 1]); for i := 1 to maxpoints (mesh) do apply_transform (mesh.point[i], Figura 6: una cuaderna a la que se han matrix); aplicado dos rotaciones: una correcta y otra done;
Figura 7: algoritmo para mantener mallas simtricas tras una rotacin.

incorrecta.

Todas estas operaciones, como se seal al principio, requieren gran cantidad de operaciones sobre la memoria. Esto es debido a que, al cambiar de forma una NURBS, la malla es ms o menos densa segn la nueva posicin de los puntos de control. Las mallas uniformes, con pocos puntos de inflexin, lazos o picos requieren muchas menos lneas de malla que las no uniformes. Puesto que las estructuras de datos simples (puntos 3D, 4D, de control, nudos, etc.) son de muy diversos tamaos (30 a 52 bytes), cada operacin de liberacin-reserva de memoria produce una fragmentacin significativa (ya que intervienen cientos de estructuras). Esto principalmente no es un problema por la necesidad de ms memoria (y no mucha, pues a la larga la distribucin de bloques libre es ms o menos uniforme), sino por la sobrecarga que introduce en el sistema operativo. Esta a llegado a bloquear la plataforma de desarrollo multitud de
1Se han utilizado una serie de funciones en pseudocdigo, que son autoexplicativas. Sin embargo dos de ellas

pueden ser algo difciles de comprender: rotate_d_mat y rotate_v_mat. La primera calcula una rotacin en grados sobre los tres ejes de coordenadas, mientras que la segunda calcula la rotacin entre dos vectores.
2Cuando se aade un punto nuevo, una coordenada se asume igual a cero, y cuando se modifica uno existente, se

mantiene intacta la coordenada que no se altera.

veces. Para evitar este tipo de conflictos, y sacrificando una cierta cantidad de memoria, la solucin que se ha adoptado es la siguiente: hemos definido una estructura ficticia, llamada bloque, cuyo tamao es el de la mayor de las estruturas de datos anteriores. As, cada vez que se libera o reserva memoria, el tamao de operacin es el mismo, y por tanto no se produce fragmentacin. La cantidad de memoria que se pierde con este mtodo no es significativa, pues se puede observar que 10.000 estructuras de 30 bytes desperdiciaran 220 Kbytes. Como referencia, sealaremos que los modelos reales con los que hemos trabajado durante el desarrollo (monocascos con timn, quilla y bulbo) ocupan una media de 3.500 bloques. Para manejar los bloques, al inicializar SDN se hace una peticin al sistema operativo del nmero mximo de bloques a utilizar (10.000-15.000), que se gestionan mediante dos listas (libres y ocupados).

CONCLUSIONES Y DESARROLLOS FUTUROS Hemos desarrollado un primer prototipo casi completamente funcional, con todos los objetivos principales conseguidos. El software ha sido desarrollado en un PowerBook 145B (MC68030/25MHz 8Mb), sobre el que funciona relativamente bien, aunque algunas operaciones se ralentizan excesivamente. Para un uso adecuado, hemos comprobado que es suficiente un MC68040/33 con 8Mb. Este software ha sido probado en la Escuela Politcnica Superior de Cartagena, de la Universidad de Murcia, por alumnos de Ingeniera Tcnica Naval. El comentario ms importante que hemos recibido, es el siguiente: es muy fcil e intuitivo disear modelos partiendo de cero o de otros previamente modelados, pero, en general, digitalizar un modelo a partir de planos existentes resulta bastante complejo. Con esta idea en mente, hemos pensado que las lneas de desarrollo futuras, algunas de las cuales estamos ya estudiando, deben ser las siguientes: - creacin de un mdulo para digitalizar planos por medio de una tableta digitalizadora, con ajuste automtico de los puntos de control. Hay desarrollada una base en (Dierckx 1993) y (Piegl y Tiller 1995). - creacin de un mdulo para exportar los modelos al programa de CFD ANSYS. ANSYS puede realizar una serie de clculos de fluidos sobre la superficie del casco y los apndices. Este producto tambin est basado en NURBS, por lo que el proceso de traduccin no debe ser muy complejo. - creacin de un mdulo para exportar planos en formatos 2D, como DXF o IGES. Nuestra intencin no es desarrollar un sistema completo de CAD 2D (puesto que hay muchos y buenos), y para conseguir planos profesionales se ha de poder aadir comentarios, marcas, acotaciones etc. Por medio de este mdulo, el usuario puede realizar el retoque final a la hora de presentar un proyecto, retoque que no tiene nada que ver con el proceso de diseo en s. - creacin de un mdulo para exportar los modelos a un programa de renderizado. Hemos realizado un trabajo previo al respecto, y esperamos enlazar satisfactoriamente el programa SDN con el sistema RDS (Martnez y Skarmeta 1995). Aqu, el problema principal sera la conversin de superficies NURBS a parches de Bzier (Piegl y Tiller 1995) (como los usados en RDS) o a caras triangulares.

Tanto las distintas versiones del software SDN como toda la informacin referente a l que se va generando (comparativas, manuales, artculos, etc.) se pueden encontrar en la direccin de Web: http://www.um.es/~humberto/sdn.html.

AGRADECIEMIENTOS Agradecemos al Prof. Leandro Ruiz Pealver, del Depto. de Ingeniera Aplicada, por su ayuda en modelos de buques e hidrostticas, y al Prof. Antonio Gmez Skarmeta, del Depto. de Informtica y Sistemas, por su colaboracin. Extendemos las gracias al grupo CoLoS del Depto. de Fsica por proveernos con los equipos necesarios para el desarrollo de este proyecto.

REFERENCIAS MacCallum, Keneth J. 1972. "Mathematical Design of Hull Surfaces". The Naval Architect Journal of the Royal Institute of Naval Architects (Julio): 359-373. Rogers, D. F. y Satterfield, S. G., "B-Spline Surfaces for Ship Hull Design". En los proceedings del SIGGRAPH'80 de la ACM (Seattle, Julio 1980): 211-217. Olfe, D. B. 1987. Fluid Mechanics for the IBM PC. McGraw-Hill. New York. Larsson, L. 1990. "Scientific Methods in Yacht Design". Annual Review of Fluids Mechanics: 349-385. Hewitt, W.T.; Yip, D. "The NURBS Procedure Library". Manchester Computing Centre. Computer graphics Unit (1992) Data, Neuron. 1993. Open Interface Elements: API Reference. Neuron Data Inc. Palo Alto. Dierckx, Paul. 1993. Curve and Surface Fitting with Splines. Oxford Science Publications. Oxford. Brewer, Ted. 1994. Understanding Boat Design. International Marine. Camden. Martnez, Humberto y Skarmeta, Antonio. "RDS: RayTracing Distributed System". En los proceedings de la International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA'95 (Georgia, Noviembre 1995): 290-296. Piegl, Les y Tiller, Wayne. 1995. The NURBS Book. Springer-Verlag. Berln.