{"id":121965,"date":"2025-12-26T08:07:18","date_gmt":"2025-12-26T08:07:18","guid":{"rendered":"https:\/\/foojay.io\/?p=121965"},"modified":"2025-12-08T08:16:22","modified_gmt":"2025-12-08T08:16:22","slug":"video-series-javafx-in-action-part-6","status":"publish","type":"post","link":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/","title":{"rendered":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)"},"content":{"rendered":"\n    <div class=\"article__table\">\n        <div class=\"article__table-header\">\n            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path d=\"M8 6H21\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                <path d=\"M8 12H21\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                <path d=\"M8 18H21\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                <path d=\"M3 6H3.01\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                <path d=\"M3 12H3.01\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                <path d=\"M3 18H3.01\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n            <\/svg>\n            Table of Contents\n            <svg class=\"chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path d=\"M18 15L12 9L6 15\" stroke=\"#3562E5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n        <\/div>\n        <div class=\"article__table-body\"><span><a href=\"#h2-0--lad-rotsenko-ombining-lojure-with-ava-for-ame-evelopment-with-efold\">Vlad Protsenko: Combining Clojure with JavaFX for Game Development with Defold<\/a><\/span><span><a href=\"#h2-1--att-oley-iving-into-byte-code-and-s-with-ecaf-and-ava-libraries\">Matt Coley: Diving into byte code and JARs with Recaf and JavaFX libraries<\/a><\/span><span><a href=\"#h2-2--raig-aw-parrow-itcoin-allet\">Craig Raw: Sparrow Bitcoin Wallet<\/a><\/span><span><a href=\"#h2-3--lorian-nner-obot-3-isualizations-and-harts\">Florian Enner: Robot 3D Visualizations and Charts<\/a><\/span><\/div><\/div><!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<?xml encoding=\"utf-8\" ?><html><body><p>This is the next part in the series of \"JavaFX in Action\" interviews. Are you working on a fantastic JavaFX application? Let me know, and let's discuss it in the new year!<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/foojay.io\/today\/new-video-series-javafx-in-action-part-1\/\" target=\"_blank\" rel=\"noreferrer noopener\">July '24: Pedro Duque Vieira, Daniel Zimmermann, Christopher Schnick, and Robert Ladst&auml;tter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">November '24: Maciej Gorywoda, Ramiro Dom&iacute;nguez Ayub, Christoph Schwentker, Ulas Ergin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-3\/\" target=\"_blank\" rel=\"noreferrer noopener\">December '24: &Ouml;zkan Pakdil, Cl&eacute;ment de Tastes, Almas Baim, Steve Hannah, Jago de Vreede<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-4\/\">March '25: Mike Hearn, Sven Reimers, Chris Newland<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-5\/\">July '25: Cormac Redmond, Brian Schlining, Gerrit Grunwald, Dirk Lemmermann<\/a><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h2-0--lad-rotsenko-ombining-lojure-with-ava-for-ame-evelopment-with-efold\">Vlad Protsenko: Combining Clojure with JavaFX for Game Development with Defold<\/h2>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/vlad-protsenko-0999b2163\/\">Vlad Protsenko<\/a> is a Senior Developer with proficiency in many JVM-based languages. He worked both in very small and large teams, gaining experience in developing projects of various sizes, from scratch and from legacy codebases. He enjoys full-stack development, writing backend, frontend, and Android applications. He started as a game developer and switched to developing enterprise software, currently mixing both at Defold.<\/p>\n\n\n\n<p>The <a target=\"_blank\" href=\"https:\/\/www.jfx-central.com\/tools\/cljfx\">Cljfx library<\/a> is a declarative, functional, and extensible wrapper of JavaFX. It&rsquo;s inspired by the better parts of react and re-frame: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Like react, it allows to specify only desired layout, and handles all actual changes underneath. Unlike react (and web in general) it does not impose xml-like structure of everything possibly having multiple children, thus it uses maps instead of hiccup for describing layout.<\/li>\n\n\n\n<li>Like reagent, it allows to specify component descriptions using simple constructs such as data and functions. Unlike reagent, it rejects using multiple stateful reactive atoms for state and instead prefers composing ui in more pure manner.<\/li>\n\n\n\n<li>Like re-frame, it provides an approach to building large applications using subscriptions and events to separate view from logic. Unlike re-frame, it has no hard-coded global state, and subscriptions work on referentially transparent values instead of ever-changing atoms.<\/li>\n\n\n\n<li>Like fn-fx, it wraps underlying JavaFX library so developer can describe everything with clojure data. Unlike fn-fx, it is more dynamic, allowing users to use maps and functions instead of macros and deftypes, and has more explicit and extensible lifecycle for components.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Vlad Protsenko: Combining Clojure with JavaFX for Game Development with Defold (#21)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/1JL6zdkM1GU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>More info in <a target=\"_blank\" href=\"https:\/\/webtechie.be\/post\/2025-10-16-jfxinaction-vlad-protsenko-closure-cljfx-defold\/\">this blog post<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h2-1--att-oley-iving-into-byte-code-and-s-with-ecaf-and-ava-libraries\">Matt Coley: Diving into byte code and JARs with Recaf and JavaFX libraries<\/h2>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.coley.software\/\">Matt Coley<\/a> got into Java development when he wanted to find out how Minecraft works. Because of his many experiments, he gained a lot of knowledge about Java byte code, how it can be converted back to Java code, and how JARs can hide the real code from the user or contain malicious code. He combines all his knowledge in the Recaf tool and the JavaFX libraries he created.<\/p>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/recaf.coley.software\/home.html\">Recaf<\/a> is an open-source Java bytecode editor that simplifies the process of editing compiled Java applications. To make things easier, Recaf abstracts away much of the class file format. Challenging tasks such as updating stack frames are done automatically. Along with additional features to help in the process of editing classes, Recaf is the most feature-rich bytecode editor available.<\/p>\n\n\n\n<p>As Recaf wants to provide an IDE similar to IntelliJ IDEA, Matt needed a framework to manage tabs and docking. As he didn&rsquo;t find the perfect solution, he created the library <a target=\"_blank\" href=\"https:\/\/github.com\/Col-E\/BentoFX\">BentoFX<\/a>. Another nice visualization library he created for Recaf, is <a target=\"_blank\" href=\"https:\/\/github.com\/Col-E\/TreeMapFX\">TreeMapFX<\/a>, a flexible tree map chart control for JavaFX. Next to these libraries, Matt also created <a target=\"_blank\" href=\"https:\/\/github.com\/Col-E\/GLCanvasFX\">GLCanvas-FX<\/a>, a small project showing a single basic JavaFX control used to display OpenGL content from an JOGL <code>GLAutoDrawable<\/code>. They are demonstrated in the interview, and available on GitHub.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Matt Coley, diving into byte code and JARs with Recaf and JavaFX libraries (#22)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/6NIJ54h3iVY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>More info in <a target=\"_blank\" href=\"https:\/\/webtechie.be\/post\/2025-10-30-jfxinaction-matt-coley-recaf-bentofx-treemapfx-glcanvasfx\/\">this blog post<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h2-2--raig-aw-parrow-itcoin-allet\">Craig Raw: Sparrow Bitcoin Wallet<\/h2>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/github.com\/craigraw\">Craig Raw<\/a> is the creator of the Sparrow Bitcoin Wallet. He lives in South Africa. Funny fact: in the video, you can hear that he is surrounded by birds who wanted to join the conversation. Craig loves Java and JavaFX because of how easy it is to create user-friendly interfaces. He also values the security built into Java. Another important aspect for him is the ability to create reproducible builds, a key factor in the security of the Bitcoin ecosystem.<\/p>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.sparrowwallet.com\/\">Sparrow<\/a> is a Bitcoin wallet for those who value financial self sovereignty. Sparrow&rsquo;s emphasis is on security, privacy and usability. Sparrow does not hide information from you - on the contrary it attempts to provide as much detail as possible about your transactions and UTXOs, but in a way that is manageable and usable.<\/p>\n\n\n\n<p>Sparrow supports all the features you would expect from a modern Bitcoin wallet, however, it is also unique in that it contains a fully featured transaction editor that also functions as a blockchain explorer. This feature not only allows editing of all transaction&rsquo;s fields, but also allows you to easily inspect the transaction bytes before broadcasting.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Craig Raw about the Sparrow Bitcoin Wallet (#23)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Mc3fUTxoKIg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>More info in <a target=\"_blank\" href=\"https:\/\/webtechie.be\/post\/2025-11-20-jfxinaction-craig-raw-sparrow-bitcoin-wallet\/\">this blog post<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h2-3--lorian-nner-obot-3-isualizations-and-harts\">Florian Enner: Robot 3D Visualizations and Charts<\/h2>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/florian-enner-59b81466\/\">Florian Enner<\/a> works on software libraries and applications that are aimed at simplifying development of robotic systems. For example, he has worked on an API for MATLAB that is capable of low-latency real-time control of high degree of freedom systems. It allows engineers without a strong background in computer science to develop sophisticated control algorithms without requiring knowledge of C\/C++ or code generation.<\/p>\n\n\n\n<p>In the video, Florian shows some of the JavaFX applications he has created to visualize the movements of robots in a 3D environment and the measurements of sensors in charts capable of rendering millions of data points. Based on the same code, he has created desktop and mobile applications that can receive the UDP messages directly from the devices and render the same charts and 3D.<\/p>\n\n\n\n<p>He also demonstrates styling with AtlantaFX, the use of SceneBuilder, and how he compiles JavaFX views to native libraries so they can be integrated in C\/C++ projects to visualize big amounts of data.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Florian Enner: Robot and Sensor 3D Visualizations and Charts with JavaFX (#24)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/_DGz4YyojpE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>More info in <a target=\"_blank\" href=\"https:\/\/webtechie.be\/post\/2025-12-04-jfxinaction-florian-enner-robot-3d-charts\/\">this blog post<\/a>.<\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Table of Contents Vlad Protsenko: Combining Clojure with JavaFX for Game Development with DefoldMatt Coley: Diving into byte code and JARs with Recaf and JavaFX librariesCraig Raw: Sparrow Bitcoin WalletFlorian Enner: Robot 3D Visualizations and Charts This is the next &#8230;<\/p>\n","protected":false},"author":47,"featured_media":121966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[204,193],"tags":[190,2034,2135,1811,2033],"class_list":["post-121965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-interview","category-javafx","tag-javafx","tag-javafx-in-action","tag-javafxinaction","tag-jfxcentral","tag-jfxinaction"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)<\/title>\n<meta name=\"description\" content=\"foojay is the place for all OpenJDK Update Release Information. Learn More.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)\" \/>\n<meta property=\"og:description\" content=\"foojay is the place for all OpenJDK Update Release Information. Learn More.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/\" \/>\n<meta property=\"og:site_name\" content=\"foojay\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-26T08:07:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1453\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Frank Delporte\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Frank Delporte\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/\"},\"author\":{\"name\":\"Frank Delporte\",\"@id\":\"https:\\\/\\\/foojay.io\\\/#\\\/schema\\\/person\\\/a396e036ad1bf495d0920486b5b6c558\"},\"headline\":\"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)\",\"datePublished\":\"2025-12-26T08:07:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/\"},\"wordCount\":1016,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/jfxinaction-part-6-scaled.jpg\",\"keywords\":[\"JavaFX\",\"javafx in action\",\"javafxinaction\",\"jfxcentral\",\"jfxinaction\"],\"articleSection\":[\"Interviews\",\"JavaFX\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/\",\"url\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/\",\"name\":\"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/jfxinaction-part-6-scaled.jpg\",\"datePublished\":\"2025-12-26T08:07:18+00:00\",\"description\":\"foojay is the place for all OpenJDK Update Release Information. Learn More.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#primaryimage\",\"url\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/jfxinaction-part-6-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/jfxinaction-part-6-scaled.jpg\",\"width\":2560,\"height\":1453,\"caption\":\"Screenshot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/foojay.io\\\/today\\\/video-series-javafx-in-action-part-6\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/foojay.io\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/foojay.io\\\/#website\",\"url\":\"https:\\\/\\\/foojay.io\\\/\",\"name\":\"foojay\",\"description\":\"a place for friends of OpenJDK\",\"publisher\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/foojay.io\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/foojay.io\\\/#organization\",\"name\":\"foojay\",\"url\":\"https:\\\/\\\/foojay.io\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/foojay.io\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/cropped-Favicon.png\",\"contentUrl\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/cropped-Favicon.png\",\"width\":512,\"height\":512,\"caption\":\"foojay\"},\"image\":{\"@id\":\"https:\\\/\\\/foojay.io\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/foojay2020\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/foojay.io\\\/#\\\/schema\\\/person\\\/a396e036ad1bf495d0920486b5b6c558\",\"name\":\"Frank Delporte\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/cropped-frank-delporte-scaled-1-96x96.jpg\",\"url\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/cropped-frank-delporte-scaled-1-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/foojay.io\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/cropped-frank-delporte-scaled-1-96x96.jpg\",\"caption\":\"Frank Delporte\"},\"description\":\"Frank Delporte is a Java Champion, Java Developer, Technical Writer at Azul, Blogger, Author of \\\"Getting started with Java on Raspberry Pi\\\", and Pi4J Contributor. Frank blogs about his experiments with Java and JavaFX, sometimes combined with electronic components, on the Raspberry Pi.\",\"sameAs\":[\"https:\\\/\\\/webtechie.be\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/frankdelporte\\\/\"],\"url\":\"https:\\\/\\\/foojay.io\\\/today\\\/author\\\/frankdelporte\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)","description":"foojay is the place for all OpenJDK Update Release Information. Learn More.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/","og_locale":"en_US","og_type":"article","og_title":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)","og_description":"foojay is the place for all OpenJDK Update Release Information. Learn More.","og_url":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/","og_site_name":"foojay","article_published_time":"2025-12-26T08:07:18+00:00","og_image":[{"width":2560,"height":1453,"url":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg","type":"image\/jpeg"}],"author":"Frank Delporte","twitter_misc":{"Written by":"Frank Delporte","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#article","isPartOf":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/"},"author":{"name":"Frank Delporte","@id":"https:\/\/foojay.io\/#\/schema\/person\/a396e036ad1bf495d0920486b5b6c558"},"headline":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)","datePublished":"2025-12-26T08:07:18+00:00","mainEntityOfPage":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/"},"wordCount":1016,"commentCount":0,"publisher":{"@id":"https:\/\/foojay.io\/#organization"},"image":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#primaryimage"},"thumbnailUrl":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg","keywords":["JavaFX","javafx in action","javafxinaction","jfxcentral","jfxinaction"],"articleSection":["Interviews","JavaFX"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/","url":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/","name":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)","isPartOf":{"@id":"https:\/\/foojay.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#primaryimage"},"image":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#primaryimage"},"thumbnailUrl":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg","datePublished":"2025-12-26T08:07:18+00:00","description":"foojay is the place for all OpenJDK Update Release Information. Learn More.","breadcrumb":{"@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#primaryimage","url":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg","contentUrl":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/12\/jfxinaction-part-6-scaled.jpg","width":2560,"height":1453,"caption":"Screenshot"},{"@type":"BreadcrumbList","@id":"https:\/\/foojay.io\/today\/video-series-javafx-in-action-part-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/foojay.io\/"},{"@type":"ListItem","position":2,"name":"Video series \u201cJavaFX In Action\u201d, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization)"}]},{"@type":"WebSite","@id":"https:\/\/foojay.io\/#website","url":"https:\/\/foojay.io\/","name":"foojay","description":"a place for friends of OpenJDK","publisher":{"@id":"https:\/\/foojay.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/foojay.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/foojay.io\/#organization","name":"foojay","url":"https:\/\/foojay.io\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/foojay.io\/#\/schema\/logo\/image\/","url":"https:\/\/foojay.io\/wp-content\/uploads\/2020\/04\/cropped-Favicon.png","contentUrl":"https:\/\/foojay.io\/wp-content\/uploads\/2020\/04\/cropped-Favicon.png","width":512,"height":512,"caption":"foojay"},"image":{"@id":"https:\/\/foojay.io\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/foojay2020"]},{"@type":"Person","@id":"https:\/\/foojay.io\/#\/schema\/person\/a396e036ad1bf495d0920486b5b6c558","name":"Frank Delporte","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/05\/cropped-frank-delporte-scaled-1-96x96.jpg","url":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/05\/cropped-frank-delporte-scaled-1-96x96.jpg","contentUrl":"https:\/\/foojay.io\/wp-content\/uploads\/2025\/05\/cropped-frank-delporte-scaled-1-96x96.jpg","caption":"Frank Delporte"},"description":"Frank Delporte is a Java Champion, Java Developer, Technical Writer at Azul, Blogger, Author of \"Getting started with Java on Raspberry Pi\", and Pi4J Contributor. Frank blogs about his experiments with Java and JavaFX, sometimes combined with electronic components, on the Raspberry Pi.","sameAs":["https:\/\/webtechie.be\/","https:\/\/www.linkedin.com\/in\/frankdelporte\/"],"url":"https:\/\/foojay.io\/today\/author\/frankdelporte\/"}]}},"_links":{"self":[{"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/posts\/121965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/comments?post=121965"}],"version-history":[{"count":0,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/posts\/121965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/media\/121966"}],"wp:attachment":[{"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/media?parent=121965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/categories?post=121965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/foojay.io\/wp-json\/wp\/v2\/tags?post=121965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}