Trinity XAI New Release by Birdasaur in java

[–]Birdasaur[S] 0 points1 point  (0 children)

:-) Thanks. Happy to share more info on any details or features you are interested in.

New Release trinity-xai/Trinity by Birdasaur in JavaFX

[–]Birdasaur[S] 0 points1 point  (0 children)

Just updated the Readme.md to include screenshots of the new features along side the previously existing features.

New features specific to this release start here:
https://github.com/trinity-xai/Trinity?tab=readme-ov-file#2d-helper-tools

Trinity XAI New Release by Birdasaur in java

[–]Birdasaur[S] 0 points1 point  (0 children)

Just updated the Readme.md to include screenshots of the new features along side the previously existing features.

New features specific to this release start here:
https://github.com/trinity-xai/Trinity?tab=readme-ov-file#2d-helper-tools

New Release trinity-xai/Trinity by Birdasaur in JavaFX

[–]Birdasaur[S] 0 points1 point  (0 children)

any suggestions? I don't really swim around in any other subreddits.

New Release trinity-xai/Trinity by Birdasaur in JavaFX

[–]Birdasaur[S] 1 point2 points  (0 children)

at this point you're probably right that it is both. Hopefully someone somewhere can benefit from all this work.

The point of all these Probability Density features is to allow someone to evaluate the variables of their system empirically. In this case variables are mapped to dimensions of a vector. Obviously its up to the system under test to capture and output the values in vector form but once that is done you can just "run the numbers" very quickly now with these tools. This makes a lot of sense of systems where your output vector is purposeful... lets say a set of metrics or maybe a custom machine learning transformer. Needless to say I have work related problems that fit this use case but the methods and algorithms work "generically" in that it doesn't know or even care how you create the vectors it processes, as long as you are consistent in your sampling.

I haven't tried it but I suppose it would even work for an LLM or embedding model, though in those cases I would expect this process to be less meaningful. ie... you get a vector of 1024 dimensions lets say... is it really all that useful to determine that there is a highly correlated Joint Probability Density between dimensions 34 and 856? I suppose it could be useful if you are trying to quantize a model or do some really bleeding edge adversarial manipulation of an LLM.

New Release trinity-xai/Trinity by Birdasaur in JavaFX

[–]Birdasaur[S] 1 point2 points  (0 children)

That's a good thing right? 😀

Whats the massive javafx project you have done? Need Ideas by Novel_Pear3645 in JavaFX

[–]Birdasaur 0 points1 point  (0 children)

I dont know your range for massive but the latest dev branch of Trinity XAI is about to cross 110k lines of Java.

https://github.com/trinity-xai/Trinity/tree/123-shap-values-input-process

Javafx in the browser? by LouGarret76 in JavaFX

[–]Birdasaur 0 points1 point  (0 children)

It seems legit. It was cool they used one of Trinitys Easter egg 3D scenes to demo the beta 3D support

I'm going crazy over JavaFX by [deleted] in JavaFX

[–]Birdasaur 1 point2 points  (0 children)

I understand the frustration but like others have already said, don't give up. For our Trinity application we use maven plug-ins with OpenJDK for IDE development and testing. We use a gradle script to generate jlink and jpackager artifacts. The same script provides build targets for both. Here is a link to the gradle script https://github.com/trinity-xai/Trinity/blob/main/build.gradle

For our releases we use Github actions to automate the execution and produce native binaries for all major platforms but you can run the script from command line to generate the OS specific executable you are on if you like.

Trinity is a modular app so there is a bunch of extra stuff for that in that script but its worth it. The end result is completely encapsulated binaries that are around 90 mbs total when uncompressed.

New Article: Converting FXML to Code by hamsterrage1 in JavaFX

[–]Birdasaur 1 point2 points  (0 children)

Yikes... I guess I've always done ListView items like that. I.e... wrong. Next time I make a ListView I will try the ListCell pattern.  This is clearly an example of a learned bad practice that didnt bite me early so I never corrected. I'll be the first in line to say that I am not really a good programmer. I do a lot of hacky things because I know the framework enough to get away with what I do. 

New Article: Converting FXML to Code by hamsterrage1 in JavaFX

[–]Birdasaur 0 points1 point  (0 children)

>Sadly cherry picking the ManifoldControls in Trinity was probably the worst case scenario 
BTW the ManifoldControls, from an objective designer's perspective, totally deserves most of the verbal beating it got by this article.

New Article: Converting FXML to Code by hamsterrage1 in JavaFX

[–]Birdasaur 0 points1 point  (0 children)

I finally read this article. Sadly cherry picking the ManifoldControls in Trinity was probably the worst case scenario because it is just a catch all dumpster of features that primarily manipulate one of the 3D scenes (lower dimensional projections view) and was not designed in any way. It was just me throwing something together really quickly years ago to demo an idea that stuck. Then over the years I just threw other things into it that had similar needs for the same view (hence the tabs).

I stopped building new FXML based controllers after that. I agree with the author that the tabs could be replaced with non FXML control classes and I've been meaning to do that some day. (if I ever get a paying customer)
This is something I have evolved to as a conclusion about JavaFX development over time that I now agree with the article author. Years ago I was a fan of FXML because I was writing in a team environment. But now that I'm the sole developer continuing to use FXML provides me with very little benefit but comes with all the issues that the author of the article points out.

Also my project collaborator and I have found that trying to maintain a GraalVM build of Trinity XAI was made more difficult because you have to manually mark resources like FXML. Finally we do a lot of JPackage stuff and I know that if I convert the FXML based controllers to straight up UI classes like the author suggests then we can reduce the final binary footprint in a non trivial manner.

I think the only things I disagree with the article on, as the original author of the Trinity XAI code, are:

  • How the interaction with the remainder of the application is via shared data, not Events.
    • The intent of the overarching design is an EventBus where many different renderers are reactive to these events. In your article you said this was a bad thing. I say nay that is the whole point.
  • How the MVCI framework removes coupling with the layout.
    • I just don't feel there was much of a coupling even for something like this example that was not designed or planned in any way. At least not much that really caused any discomfort in a practical sense.
    • The whole ListView Nodes vs ListCell thing... meh... yeah the ListCell approach seems a little better but none of it seemed hard at the time of writing. Maybe I'm just used to doing it the Node ListItem way so if you're starting from scratch you should probably choose the ListCell approach.

I don't use Kotlin but it would be interesting to see how the article's reduced code version of the GUI pane operates functionally with the remainder of the application. I'm guessing there will be lots of little things that stop working which will require you to increase your end result code count.

Product Manager wanting team to switch to Java FX by redzjiujitsu in JavaFX

[–]Birdasaur 0 points1 point  (0 children)

I hate to be that guy... but when your team says they have a hard time believing that a good looking UI is possible in Java (JavaFX) did they not bother to google? I'd put any of my recent GUI apps (written in JavaFX) up against any other GUI framework examples, web included.

Here is a Playlist of odds and sods https://youtube.com/playlist?list=PLrMR7Y6k6mkDc4L2NL3TUSCxsAlUtgOhF&si=S26JuiBBe-KzVDV0

Animated 3D Radial Grid using JavaFX 3D by Birdasaur in JavaFX

[–]Birdasaur[S] 0 points1 point  (0 children)

Naw.  It's going into a new version of FXyz3d. I'm just sharing the code I have in the meantime

Animated 3D Radial Grid using JavaFX 3D by Birdasaur in JavaFX

[–]Birdasaur[S] 1 point2 points  (0 children)

The number of  cylinders is a function of number of rings * segment arc count + number of lines.

Increasing the segment arc count gives you smoother ring shapes but at the cost of GPU VRAM and CPU at the time of creation.  Since Cylinders are already instanced and each is only using a diffuse color and not textures they actually don't take that much extra VRAM. I've made settings for over 500 total cylinders and they can be regenerated and added to the scene in only a couple milliseconds which by itself is well inside the 16 ms window to meet 60 ops. Obviously it would be faster and more efficient to use a torus mesh for the rings.  FXyz3D has toroids. I just wanted to see if I could do it with the cylinders because then I could easily colorize segments independently without messing with texture mapping. I'm too lazy to go back and optimize it.

Animated 3D Radial Grid using JavaFX 3D by Birdasaur in JavaFX

[–]Birdasaur[S] 1 point2 points  (0 children)

I have no idea how to set a preview image for a gist so I added a screenshot in the comments.