For those, who think there is room for optimization for C++ build pipelines and e.g. appreciate something such as the NuGet package management from the .net world, there is light in the tunnel: conan.io and meson.
With conan.io you can integrate binary packages into your build. You can either use an open server or also setup your own, e.g. in a closed development environment. Own code can be packaged and add to the server. Packages are organized dependent on version and platform, to enable cross platform development and support of different compilers. Using conan.io you don't have to install packages globally into your system (or virtualized system), which is handy when working on many different projects.
With the web-based compile explorer (www.godbolt.org) you can easily inspect what your compiler does to your high level code – not meaning that that’s easily understood. 14 different languages are supported (Haskell, C++, Rust, D, …) for the input and many different compilers and versions can be chosen for the output. You can inspect the resulting assembler code with some simplification features, and color coding. Multiple views and windows can be arranged side by side.
Here, the different output of a short loop in C++ in optimized compile (-O3) in clang 6 vs gcc 8. When disabling the optimization the SIMD instructions will disappear:
When changing the high level code it re-compiles on the fly. It’s pretty astonishing how the same functionality looks different in the final assembler codes.
Magnet resonance imaging (MRI) allows to reconstruct fibers in the brain, by analyzing the diffusion direction of water. Greg Dunn and Will Drinker took this pure scientific approach further away from medical application and imaging, and created artistically appealing visualizations based on, but not directly related to real data. Enjoy this commented walk through the brain and its intrinsic beauty.
Self Reflected – A Guided Tour from Will Drinker on Vimeo.
More information on the project was published in the Scientific American and more artworks and images can be found on a dedicated web-space.
Stop motion animation is still a fascinating technique. Real small scale miniature scenes are created and come to live with movable puppets and lighting. A photo is taken for every frame. Usually, capturing is done in half-frame-rate with 12 images per second. No need for photo-realistic rendering, low tech does the full job.
The upcoming movie Isle of Dogs is produced in stop motion.
read more ...
Miniature sets are used for the upcoming point-and-click adventure game Trüberbrook. Sets are reconstructed in 3D and CG characters added. It results in a mixed media project with a unique style.
read more ...
The power of the new Volta generation of NVidia cards, mainly designed for artificial intelligence applications, also enables ray-tracing for real-time applications and gaming. The following demo is running in 4k and ray-traced! 21 billion transistors do the job.
The graphics-programming pipeline-analysis and debugging tool RenderDoc made it to version 1.0.
You can inspect the stages of your rendering, buffer contents, call stacks, etc. with visualizations. It is a valuable tool to get your rendering code right and improve it. Just start your Vulkan, D3D11, D3D12 or OpenGL application via RenderDoc, take a snapshot and start the investigation.
Check out the in-depth release notes on github.
A quantum processing unit may one day become available as co-processing unit or remote computing machine. Well, the lately un-boxed 17 qubit processor still needs to be cooled to 10 milli-Kelvin …
Software has to catch up, a preview release of a developer kit for quantum computing is available since December last year for the .net family of languages: Q#. It is available as Visual Studio integration. For now it uses a simulated quantum computer with up to 30 qubits for the execution of the Q# code on the local machine: quantum.DevKit
Maybe a quantum approach would be just suitable for your algorithms, maybe not. But, one can now get practically into the quantum computing concepts.