F(X)yz

An open source JavaFX 3D Visualization and Component Library

View project onGitHub

Welcome to F(X)yz





F(X)yz is a new JavaFX 3D library that provides additional primitives, composite objects, controls and data visualizations that the base JavaFX 8 3D packages do not have.

News

September 27th, 2014

Hey everyone, Introducing myself, I'm jdub1581(Jason Pollastrini) Co-Founder of F(X)yz.

Announcements:

  1. If you haven't noticed, we have completely open sourced F(X)yz. So feel free to make pull-requests, add suggestions, or contribute!
  2. Previous users should update their binaries to the new version, which has many added components, as well as a new package structure.
  3. The project gets updated often so stay tuned, and up to date!

New Features include:

  • Camera package, includes AdvancedCamera, and CameraControllers (only FPSController for now)
  • More primitive Shapes!
  • Capsules
  • Cubes (texture coordinates are cube mapped)
  • Spheroids (oblate to prolate, to perfect spheres)
  • Skyboxes (supporting 6 single images or 1 Single image, refer to class for SingleImage layout)
  • Billboarding Behavior
  • Vector3D
  • CameraView (for viewing 3D group from another perspective)
  • Many other updates have been made as well!

August 3rd, 2014

Major contribution from jdub1581! Check his other work here
Torus and TorusTest classes added to library binary. Torus (based heavily on code contributed via pull request from jdub1581) is a class that auto-generates a doughnut like MeshView with its own lighting based on parameters passed to its constructor. Users of the SphereSegment can make perfect Torus objects, extremely thin rings, flat discs and even Puffy Marshmellow Doughnuts. TorusTest demonstrates how to exercise this new class by generated a bunch of random Toroids(sp?).

July 10th, 2014

SphereSegment and SphereSegmentTest classes added to library binary. SphereSegment is a class that auto-generates a Dome like MeshView with its own lighting based on parameters passed to its constructor. Users of the SphereSegment can make perfect Domes,extremely thin rings, arcs and arches. This is enabled by using TriangleMesh point calculations that take into account user parameters including minimum and maximum theta (for Circumference), minimum and maximum polar angle (for dome height), radius and number of segments to use (for face smoothness). SphereSegmentTest demonstrates how to exercise this new class by generated a bunch of random SphereSegments.

July 7th, 2014

CubeViewer and CubeViewerTest classes added to library binary. CubeViewer is a composite group of 3D nodes that form a grid coordinate system. The grid and gridline spacing is resizable and arbitrary 3D objects such as the ScatterPlot class can be added to it. By default the CubeViewer can "add" data to itself as simple 3D spheres similar to a ScatterPlot. An interesting feature is that as the camera angle is rotated the bounding boxes of the cube's gridded coordinate system will disappear and reappear as necessary to facilitate direct viewing of the data. Also added is a CameraTransformer class that can be used to perform and react to complex rotations of the camera. This is very helpful for taking advantage of the CubeViewer's hideable grid panels. Demonstration of the CameraTransformer class can be found in the CubeViewerTest class.

June 30th, 2014

PolyLine3D and test class added to library binary. PolyLine3D is an object that takes a simple list of Point3D objects, a width and a color and plots a 3D line with each point being a joint in the line segment chain. Currently builds a pancake line meaning the thickness is 1 pixel. This means at certain camera angles the line may look super thin regardless of the width. Currently working on that.
Also added a tests folder where you will find the source for each of the associated tests that I use to test each item/tool I upload. Each test class is a fully functional JavaFX 3D app with main();

June 28th, 2014

Library binary includes ScatterPlotMesh class with test. ScatterPlotMesh... for when orders of magnitude matter!
Currently only supports cube data nodes, tested successfully with 1 million nodes. (you better have a nice video card though)

June 24th, 2014

Added an early binary version of the library to exercise the Github site. For now we only have an early version of the library that features only the ScatterPlot tool. It is intended to test the Github site but it is fully functional. The binary file includes a full JavaFX 3D scene test class. Double clicking the .jar will run this JavaFX application by default and you should see a nice helix spiral of scatter nodes!

Features

  • Gridded Coordinate System render (CubeViewer)
  • PolyLine3D with adjustable width
  • Cones
  • Pyramids
  • Thick Rings
  • Domes and Sphere Segments
  • Surface Plot
  • Fixed Grid Histogram
  • Multi-variate Scatter Plot
  • Fixed Torus

The binary library for F(X)yz along with some demo code is available to use. We are releasing primitives and other data visualization tools one at a time heading towards JavaOne. We will open source the kit at JavaOne this fall so stay tuned! Image preview over at our tumblr:

F(X)yz Tumblr Preview

...and catch a glimpse of F(X)yz in some NASA tools (A voice over video I made for Jim Weaver @JavaFXpert)

Sometimes I use Google Plus (because I like being alone)

Authors and Contributors

@Birdasaur (Sean Phillips) can be found on twitter at @seanmiphillips.
@jdub1581 (Jason Pollastrini) can be found on twitter at @jdub1581.
@jperedadnr (Jose Pereda) can be found on twitter at @JPeredaDnr.