July 21, 2025
Fixed the mirror modifier to work on local axis', and have finally changed the gizmo orientation from world/camera view to local view and have made a few aesthetic and code cleanups, the mirror gizmo now AUTOMATICALLY triggers whether activated by the EasyOps tab or by the QuickMenu. It now also defaults to mirror on the objects relative center!
Finally fixed multithreading in integrated mode, its a bit janky where users still have to ctrl+c after you quit b-top, but hey! its better to have rogue threads running daemons.
Took a lot of testing and finally a decent solution
Did a lot of testing with b-daemon to ensure it works, and it does! Added an integration mode where it would run with b-top, which apparently lead to the daemon instance NOT being killed with b-top the daemon, being a daemon, ran forever until i found the process PID's and killed manually (oops), so i'm working on that
Added a daemon supervisor to b-top which can be activated with -d --daemon args in the command line, which allows for user-specified custom services to run and monitor processes, took a really long time and especially since i kept mistakenly running my production b-top instead of my local b-top which confused me a lot. but try it out!
OKAY! this one was pretty bad, as in it took a long time. But basically I implemented the mirror feature fully, with an interactable gizmo so no need to faff about on what axis needs to flip to get the right mirroring techniques, remove auto mirorring because that was stupid and i should have never made it
Finally added the UI implmentation for conflicted merges and allow full user choice, added a new tab which allowed users to automatically check for conflicted merges before pulling
This took so long, and yes fast-forwards work as well
Added a complex mirror modifier operation to the EasyOps section of the addon, the 'auto' mirror feature is a bit strange but i'll work on it. Basic axis mirroring works as well as bisects and merging. Works amazingly well with the FF boolean and normal boolean systems as well
Finally got the GUI correct and implemented the search method without absoloutely nuking event_handler.rs and details and tree functions still pass through so it works great! woooo (new release as well)
Added search filtering where users can turn on a search feature and well...
Filter from search parameters! Implemented the basic and active implementations so far but working on implementing user interaction with the search bar as the event handler is a wee bit messy
Alright, i've decided to stop being lazy and finally started implementing complex merges, added a base where users can either overwrite, abandon or manually edit themselves within git-hydra (wow amazing i know). Added the basic implementation it git.rs and now working on the active implementation in app.rs. (No screenshot since my ui.rs requires a full implementation before git-hydra can run)
well... looks like remote push and pulls were a BIG issue for me and i couldn't really get SSH to work for remote's (well sometimes they do) so i've added a https fallback. but at least it works.
i also have to slap an AI tag on it since i was so lost i hate to 'consolidate' some help
Worked and implemented stashing (pop/push/drop etc.) along with branch creation and fixed a few checkout bugs
spent a whole hour wasting my time thinking that it was freezing on the stashes tab, turns out i forgot to add keycode checks when i switched contexts right after i blamed git2 (im sorry :( )
Alright this is really cool, apologize if its a long devlog. First off I decided to nuke the entirety of SSharpen (or smart sharpen if you will) since it wasn't working the way I intended where the point was it would automatically sharpen edges if the adjacent faces went above a certain threshold (+ other fancy stuff that depends on manifolds) but it did not work at all, this was especially an issue with circular or cylindrical objects as it would mark their edges as sharp which was UGLY. so i revamped the whole function and also decided to add a priority queue to apply modifiers so it could all be done into one clock. For additional control i also added a little dialog/propety box when executing the operation. Works to 'fix' current sharpness as well, so if you had an edge that was previously sharp which you bevelled into a smooth corner, it would unsharp the edge according and sharpen the corner sides only (as you would expect)
also closed issue #1 with the wireframe preview not updating.
I also think my Hackatime isnt working properly because ive logged 2hrs+ for this fix but oh well!
Add staging/unstaging and adding commit messaging, additionally edit the ui and app to implement the new git operations. Add basic file diff setup in git.rs to implement
basic TUI functions with logs, commits and branches and basic navigation, thank god for ratatui
Add basic structure, still no working product as of yet since I am working on getting the TUI done
a tui-based git interface inspired by GitKraken (install instructions in README)
Fixed a bug where inheriting the FF boolean class would lead to it being unregistered, fixed by simply creating a base FF class to inherit from. Additionally added a new boolean operator called 'Slice' and has been applied to FF Boolean Templates and normal Booleans
Working on major bugfixes and refactoring the operators, additionally working on a 'Slicing' feature
Created a new Square 'drawing' Boolean template along with some additional bugfixes such as the depths not being drawn on the normal of the shape which lead to some, weird, behaviour. Additionally, added square snapping and improved the the 2d overlay previews for the square template and added an extra row slow.
Added advanced snapping based on increments and angle and general QOL updates and bugfixes for FF Booleans + other bugfixes.
Deprecated function cleanup and UI revamp for the panels (also got the full QuickMenu to work!)
Shifted focus from General 4.xx support to >4.5 Support for stability.
Added a 3D wireframe view and fixed raycasting issues and any other bugs, users can now switch between camera view and drawing modes. (I had to nuke two things to get this to work)
Testing FF Booleans vs normal EO Booleans seems to work and interact well, EO Booleans are using the 'Exact' method while the FF Booleans are still on the 'Fast' method which leads to bevel errors, working on a fix but so far the workflow looks good
Fixing a few bugs, FF raycasting sometimes cancels out the point you want to place the FF boolean due to orthographic orientations. Additionally, adding Snap and Axis lock features as FF drawing is way too FF sometimes.
Improving predictable normals as well, and figured out that 'Exact' boolean cutting doesnt work when it comes to addons.
Temporarily suspended working on the alerts branch since there was a lot to implement via tracking, decided to release v0.2.3 of b-top with a tree feature. This can be accessed by activating show_info on any process then pressing tab, overwriting the current process widget with a tree widget (and wooo shaders), then the tree can be viewed in detail like below!
Adding freeform booleans as well as spraying a few bugs down from the current EasyOps boolean processes.
Currently having an issue with bmesh where the operations queue is resetting when a point is plotted which leads to the operation crashing and being kicked out. Although all normal boolean functions (non FF) are working properly along with their undo operations as it will cycle properly
A simple HardOps and BoxCutter-esque tool for Blender (4.xx)
Added a new branch, working on alerts for b-top. Planning to alert if there is unusual usage of memory, CPU or processes.
Integrating the new theme management system into ui.rs and a few bugfixes. Additionally, added a few more animations with TachyonFX.
Added theme support for b-top, using theme.rs. Using a Theme and ThemeManager implementation, allows for custom themes and non-hardcoded color constants.
a rust-based process monitor and manager using ratatui and tachyonfx for shaders. currently supporting UNIX-like systems. (Refer to README for install instructions :) )
This was widely regarded as a great move by everyone.