250 likes | 364 Vues
MVE-2 (Modular Visualization Environment) is a versatile framework designed to support both educational initiatives and research projects. Developed using .NET technologies, it allows for the modular decomposition of algorithms into manageable components, facilitating the visualization of complex data structures. Key features include language independence, ease of integration with various data formats (e.g., XML), and a user-friendly GUI that enhances the learning experience. MVE-2 has been successfully employed in academic courses and research at UWB, proving its value in fostering good programming practices and clear problem decomposition.
E N D
MVE-2 Applied in Education Process Milan Frank Libor Váša Václav Skala
Outline • what is MVE-2 • MVE-2 features • development of MVE-2 core • development of MVE-2 visualisation modules • MVE-2 used in education • MVE-2 used in research 4th .NET Technologies 2006
What is MVE-2? • Modular Visualisation Environment • algorithm decomposition into • modules • connections • maps • two front ends: • MapEditor • runmap 4th .NET Technologies 2006
MVE-2 features • .NET • Framework (XML, collections, …) • language independence • generality • modules/data structures easily added • any functionality • simplicity • experimental purposes • flexibility • general execution model 4th .NET Technologies 2006
MVE-2 and XML • XML suggested data format • Saved maps • Map topology (connections) • Additional information for the GUI • Custom module settings • Saved data structures • XML serialization/deserialization required from any data structure • XML serialization modules are provided by Elemetals library 4th .NET Technologies 2006
MVE-2 simplicity • basic module source code (whole!): • using System; • using Zcu.Mve.Core; • using Zcu.Mve.Numerics; • namespace Examples{ • class SimpleSine:Module{ • public SimpleSine(){ • AddInPort("Argument", typeof(Scalar)); • AddOutPort("Value", typeof(Scalar)); • } • public override void Execute(){ • Scalar input = (Scalar)GetInput("Argument"); • Scalar result = Math.Sin(input); • SetOutput("Value", result); • } • } • } 4th .NET Technologies 2006
MVE-2 simplicity2 • private int multiplier; • public int Multiplier • { • get { return (multiplier); } • set { multiplier = value; } • } 4th .NET Technologies 2006
MVE-2 flexibility • general maps • support for cycles • map sublevels • advanced execution • on-demand execution (non-auto update port) • port events • connection estabilished • connection removed • data ready 4th .NET Technologies 2006
MMDOC • documentation generator • uses: • metadata • documentation comments • special attributes • PortInfo, ModuleInfo • generates: • documentation in variety of formats • html, chm, … • list of missing comments 4th .NET Technologies 2006
MVE history • first version (1996) • static set of data structures • problems with different languages, compilers • MVE-2 (2002) • completely new code • core is pure .NET • PhD. work of Milan Frank • used in the GSVD course 2005, 2006 • used in research at UWB 4th .NET Technologies 2006
Development of MVE-2 core • Milan Frank – team leader, software architect • a team of MSc. Students • core implementation (Miroslav Fuksa) • MapEdit implementation (Zdeněk Češka) • mmdoc implementation (Petr Dvořák) • data visualisation module library (Miroslav Vavruška) • early versions used in research • mesh stripification (Petr Vaněček) 4th .NET Technologies 2006
Visualisation • Module library by Miroslav Vavruška and Milan Frank • Common visualisation tasks • Data structures • Similar to VTK • Basic elements (points, vectors, matrices, …) • Data sets • structured/unstructured • regular/irregular • Separate geometry (points) and topology (cells) • Assignable attributes (point attributes, cell attributes) • Modules • Sources • Basic renderers (image, curve, …) 4th .NET Technologies 2006
Visualisation data structures 4th .NET Technologies 2006
MVE-2 in education • environment for GSVD courseworks • system improvements • automatic GUI using PropertyGrid component (Přemysl Zítka) • new modules • mesh displace (Jiří Skála) • loaders/savers of various data formats (TRI, STL, PLY, CMX, ...) • will be used in the future 4th .NET Technologies 2006
Benefits from using MVE-2 in education • enforces good programming habits • clear problem decomposition • early architectural decisions • straightforward code reusability • students are forced to read and understand existing code • data visualisation pipeline is clearly shown • familiarizes the students with basic data visualisation concepts (Visualisation library similar to VTK) • team work 4th .NET Technologies 2006
MVE-2 in diploma thesis • task: renderer (Jan Kaiser) • data structures from Visualisation • additional new data structures • lights • objects (geometry+material) • camera • scene (objects+lights+camera) • problems to solve • interactivity (backloop, minimisation of updates) • generality (D3DUT) • overall architecture decisions 4th .NET Technologies 2006
MVE-2 in research • used by PhD. students and researchers at UWB • benefits • simplicity for experimental purposes (small overhead when compared to similar systems such as ParaView) • cooperation • use of existing modules • Petr Vaněček • mesh stripification • Libor Váša • dynamic mesh comparison 4th .NET Technologies 2006
MVE-2 in research • Martin Janda and Ivo Hanák • digital holography • hologram renderer module (Martin Janda) • renders an artifical scene into a hologram • Hologram reconstruction module (Ivo Hanák) • renders a scene represented by a hologram as an image • new data structure for hologram (easily added) • MVE-2 allows straightforward cooperation and verification • negligible performance loss (intensive computations) 4th .NET Technologies 2006
Future work • standard modules developped as courseworks of data visualisation subjects • volume data visualisation • basic image processing (in collaboration with University of South Bohemia) • environment improvements • automatic parallelisation of inherently parallel maps • use in research • holography (continued) • dynamic mesh decimation 4th .NET Technologies 2006
Thank you for your attention. • Questions? • http://herakles.zcu.cz/research/mve2 4th .NET Technologies 2006