Lucan - Software for optical simulation and design

2023-02-13: Learning Haskell

Sometimes I am asked why I use Haskell as a scripting environment. Haskell often has a reputation for being an academic language with abstract syntax. But that is only partly true. The basic features of the language have a clear syntax, which is enough to create large programs. This is mainly due to Haskell's powerful type system, which in my opinion is well suited for physical modeling. Since Lucan itself is written in Haskell and the compiler provides a nice REPL that can be used for scripting, there is no need to use another scripting language.
Haskell is used in several areas and in different ways. As a result, there is a lot of information about the language on the internet, which often makes it difficult for beginners to filter out suitable resources for learning. For practical work with the language, one can ignore things like category theory or language extensions, although there is a lot of discussion about them. To help you get started, I've listed a few books below that I think are good for beginners. However, in order to write scripts in Lucan, you only need to know the absolutely basic characteristics of the language. If you want to use a function of the Haskell environment in addition to the functions of the Lucan API, you can check the websites Hoogle and Hackage. Thereby you should limit yourself to the functions from the 'base' package which are listed in the Haskell 2010 Language Report.

2022-10-12: New version Lucan 1.2.0

The Lucan software is making great progress. There are a number of new features and improvements in the new version. For details, see the changelog file that comes with the software. However, there is still a lot that can be added. Now I will turn to optimization for optical designs.
The Lucan Pro license is also available. I've moved the export feature to the Pro license as it's an advanced feature that's not essential for productive work. I hope that reassigning features to a different license will be an exception. If commercial license users are affected by a feature availability change in a new version, they can get in touch with me and we will find a solution that the user is happy with.

2022-03-20: Online shop and new release

The online shop is finally available. It was more work than I initially thought, but I wanted to have a huge part of automation when purchasing licenses.
In addition, the new version has been released, which contains the export functionality that can be used with the Lucan Base license. Now I look forward to moving on to more fun things, that is adding more features for optical analysis.

2021-02-04: Export to CAD now possible

The last months were full of work. To make export to the CAD format STEP possible, Lucans constructive solid geometry (CSG) had to be translated to the boundary representation (BRep) that almost all other CAD softwares use as their main representation. So an engine had be written that does this job. This was a difficult task, because the two representations are fundamentaly different. You may ask why Lucan doesn't use a boundary representation in the first place? The main reason for this is that with a CSG based on halfspaces, raytracing is easier and therefore faster.
After all work done, I believe the STEP export implementation is very powerful. Sure, there are always some cases that cannot be exported, but I made sure to catch as mutch cases as possible. As an alternative the parts can be exported as a dense pointcloud in a simple and widely adopted XYZ format. The new export functionalities will be available under a paid base-license in the next release. So stay tuned!

2020-08-27: First version of Lucan released

It's finally done, Lucan version 1.0.0 is out. The raytracing and modelling capabilities are already pretty powerful. There are different options to define ray sources with an arbitrary number of rays. The rules of refraction are widely implemented and you can define your own materials and glass catalogs. However, functions for optical analysis and optimization are not yet available. You can submit feature requests and maybe they will be implemented after I reviewed them.
With the interactive 3d-viewer you get instant feedback on how your model looks like. You can also open multiple view windows, but this is more useful at a later stage when Lucan has some capabilities for analysis.
Lucan is written in Haskell, a language that is well known to write reliable and scalable software. You may ask why this is important to know? Well, the program is also operated using Haskell scripts. So if you want to work with Lucan you have to learn some Haskell. But this shouldn't discourage you to at least give it a try. I kept great attention to keep the syntax as simple as possible. Get started by running the examples!

2020-07-05: Added functions for designing bended lightpipes and lightguides

Lucan now is capable to trace light through bended lightpipes. The underlying geometrical shape of a bended pipe is a torus. You can piece together multiple parts of either a cylindrical section or a toroidal section to design pipes with complex shapes.

2020-06-19: Launch of the new website

Hello users, the new website is online. Here you will find first informations about the new optics software Lucan. I recommend to go to the documentation page or click on the thumbnails in the gallery above. The download of the free version will follow soon. There's only some fine tuning to do. Be curious!