Giter Site home page Giter Site logo

kahr-alpha / aether Goto Github PK

View Code? Open in Web Editor NEW
17.0 3.0 3.0 3.18 MB

An optics simulation suite for Windows and Linux, including a raytracer, a FDTD solver and various tools.

Home Page: https://aether.utt.fr/

License: Apache License 2.0

Lua 0.44% GLSL 0.97% TeX 2.96% CMake 0.74% C++ 80.29% C 14.12% PowerShell 0.46% Dockerfile 0.01%
fdtd multilayer-films optics ray-tracing raytracing scientific-computing wxwidgets optical-design optics-simulation geometric-optics

aether's Introduction

Aether

Aether is an open-source optical simulations suite, coded in C++ for Windows and Linux, born out of the research and needs at the L2n laboratory in France, which is part of the University of Technology of Troyes.

It is an evolving project and might be subject to numerous changes.

image

Features

GUI

  • FDTD simulations
  • Raytracing
  • Multilayer's optical response
  • Graphical fit of data
  • Human assisted planar modes solver
  • Mie theory: cross-sections calculation
  • Graphical samples organizer
  • For the classroom:
    • visualisation of the ellipsometric concepts
    • 2D SEM particles simulation

CLI

  • FDTD simulations
  • FDFD simulations (2D)
  • Raytracing
  • Multilayer's optical response

A bit of history

The oldest roots of the software originate back in 2008 with personnal rendering projects.

This was followed two years later by an internship at the L2n on the ADI-FDTD method, which served as the basis for the FDTD module. Concurrent development happened through the OpenSource Gneiss project (now obsolete), dedicated to rendering space scenes.

The FDTD code was then developed during a PhD under the ANR MetaPhotonique project, together with some basic tools.

A few years later under the TurboPET project, the raytracing core was coded by integrating Gneiss' original raytracer into Aether.

Since then, many improvements have been added, like the GUI, and from 2015 onwards several upgrades were designed to accomodate the Limule project, a proprietary software coded for the In-Fine joint laboratory.

In 2021 the aim was to finally launch it as an OpenSource project of its own.

Past fundings

The following fundings have contributed directly and indirectly to the project:

  • The University of Technology of Troyes
  • The ANR MetaPhotonique project
  • A Région Champagne-Ardenne PhD grant
  • The Eurostars TurboPET project
  • The BISONS RAPID project
  • The ANR DECISIoN project
  • The SURYS society through the In-Fine joint laboratory

aether's People

Contributors

kahr-alpha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

aether's Issues

Compile error

When trying to compile with GUI the compilation stops with the following error:

/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp: In member function ‘void MaterialSelector::allocate_effective_materials()’:
/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp:266:52: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&MaterialSelector::evt_effective_material’ [-fpermissive]
  266 |         eff_mat_1_selector->Bind(EVT_MAT_SELECTOR,&evt_effective_material,this);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~
/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp:267:52: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&MaterialSelector::evt_effective_material’ [-fpermissive]
  267 |         eff_mat_2_selector->Bind(EVT_MAT_SELECTOR,&evt_effective_material,this);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~
/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp: In member function ‘void MaterialSelector::allocate_effective_materials(const Material&, const Material&)’:
/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp:288:52: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&MaterialSelector::evt_effective_material’ [-fpermissive]
  288 |         eff_mat_1_selector->Bind(EVT_MAT_SELECTOR,&evt_effective_material,this);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~
/home/jromero/builds/Aether/src/GUI/Materials/gui_material_selector.cpp:289:52: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&MaterialSelector::evt_effective_material’ [-fpermissive]
  289 |         eff_mat_2_selector->Bind(EVT_MAT_SELECTOR,&evt_effective_material,this);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~

Better Linux OpenGL framerate

Right now the framerate for OpenGL windows is forced on Ubuntu to half that of Windows.

It seems related to the wxWidgets messages queue as they are used as the refresh clock.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.