Posts

GNUnet Messenger API: April

Hey there, So last time I was pretty close to announce a release but I thought about delaying that for reasons of stability and polishing some aspects of the GUI application ( messenger-gtk ). Now I can at least announce the release of libgnunetchat 0.1.0 (the back-end of the messenger applications I’m working on). Since last month I implemented a missing feature in the GNUnet Messenger service , fixing some issues with renaming in the service causing crashes and I adjusted a lot in the back-end as well as adding documentation for its release. There have been added some test cases as well which helped to find the problem behind inconsistent usage of lobbies, I referenced last time. The test cases aren’t covering all features of the library ( libgnunetchat ) yet and at times they fail due to timeouts but it’s far more usable now and from my experience it’s good enough for a first release. I also want to be clear that the software is pretty much still in development and it’s likely ...

GNUnet Messenger API: March

Image
Hi again, Last time I had big hopes to make enough progress for a first release. But I think I’m gonna delay that a bit (maybe still this month but we will see) even though I could actually complete the things, I anticipated. However here is finally the long promised video of it running on the Pinephone Pro because there’s still much to show. The back-end of the messenger-gtk application called libgnunetchat now uses the GNUnet Name Store service to manage your chats instead of using a local directory and some configuration files for each chat as before. This means that it is now possible to start the application from any directory and it will properly sync the chats depending on the account/identity selected. Next big feature is that it is possible to generate so called lobbies. Lobbies are empty chat rooms which will be shared in form of a GNS record under a newly generated zone instead of your own identity zone. This has multiple reasons: Technically your own key could ...

GNUnet Messenger API: February

Image
Hi there, At the beginning of the month I didn’t think to make that much progress. But now I get the feeling that the GUI client could come to an end next month. Why do I have this feeling? It’s looking really good already, not gonna lie. So as stated in my last update in January, loading older messages needs to be implemented as well as switching accounts during runtime. Now it is. Getting older messages still needs some tweaking to not load all older messages but it’s good enough for now. image of messenger-gtk account selection Switching accounts was more difficult to implement because I had to go back looking into the Messenger service of GNUnet itself, fixing that the service will run as user to make use of the same EGOs as the client side library in multi-user setups. The client side library ( libgnunetchat ) now exposes each of your EGOs as account with name and own directory to store the files and configurations used by the applications. Another benefit of this is tha...

Material point method in Vulkan

During the lat weeks I implemented with a few other students at university a simulation for soft-body dynamics and really basic fluids using the material point method (in short MPM ). The goal was to use different sizes for individual particles which would decrease or increase their specific area of impact. It pretty much works like this: 👉 1. You have an amount of particles which you spread around to represent a specific volume (for example a sphere or a cube but it could be any mesh really). Then you give each particle a mass, velocity, position and volume. The particles will pass in their area of impact their information about mass and velocity into a grid data structure as weighted impulse and weighted mass depending on the distance between each grid cell and your particle. 👉 2. The next step is to adjust forces to the grid cells and collect data in the area of impact of each particle from cell back to the particle. Then you calculate from that the new velocity of the particl...

GNUnet Messenger API: January

Image
Hi again, This is the first monthly report of this new year about the GNUnet Messenger API. There’s no new video to share this time but that doesn’t mean there’s nothing to show. animation of file preview in messenger-gtk As I teased last time that sending files should work already in theory. Well, now it works… actually. But it needed more changes internally in libgnunetchat than I thought. I also implemented visual previews for images and GIF animations as you can see. Users will be able to select which files can be downloaded automatically depending on its sender, size and chat. But currently each file has to be downloaded manually. Files besides images and simple animations can also be opened via default application. I should also add for everyone interested in the security behind the scenes that the files will be encrypted with AES and TwoFish before being shared using the FS submodule from GNUnet. Then the used and randomly generated key and the files hash will be sent...

GNUnet Messenger API: December

Image
Hello again, Here is a little update to the GNUnet Messenger API from December. This time I’ve added a short video to show how it works at the moment on a local machine with multiple clients. I’ve now added most dialogs to invite contacts to groups, open custom private groups, open chats directly to your contacts and open public platforms (public chat rooms). Filtering the contacts in those dialogs using a search field will be implemented soon (this is visual only for now). Sending files should work in theory already but I haven’t hooked up visually representing those file messages. But it will likely be very similar to the implementation of it used in cadet-gtk . Chats will now allow renaming for contacts and update each widget using it. Also it is now possible to have persistent chats between closing and opening the application which will be necessary for ease of use. Many bugs got sorted out in libgnunetchat but there’s still a lack of thread safety which needs to be addres...

VkCV 0.1.0 released!

This year I collaborated with many other students at the university on a computer graphics framework using the Vulkan API. We designed it to function rather modular and while it abstracts several parts of the Vulkan API and memory management to ease development, it still allows you to utilize Vulkan’s openness and the use of various extensions. We implemented several example projects with the framework to show how it can be utilized. There are also modules extending the capabilities from the framework to load GLTF assets, manage a scene graph, handling cameras, rendering GUI with ImGui and even image upscaling in realtime using FSR from the GPUOpen initiative. It’s also possible to use the framework for non-rendering projects like simulation utilizing Vulkan compute shaders and its compute pipelines. You can find a video showcasing the different example projects containing modern features like mesh shaders and ray tracing on YouTube . You can also find a more detailed explanati...