{"id":20300184,"url":"https://github.com/sruffner/figurecomposer","last_synced_at":"2026-01-27T18:40:38.242Z","repository":{"id":245197635,"uuid":"817510687","full_name":"sruffner/figurecomposer","owner":"sruffner","description":"FigureComposer is a standalone Java application originally developed to help researchers prepare and refine scientific figures for journal publication.","archived":false,"fork":false,"pushed_at":"2024-10-24T22:39:46.000Z","size":5469,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T13:44:48.582Z","etag":null,"topics":["data-plotting","data-visualization","java","matlab"],"latest_commit_sha":null,"homepage":"https://sites.google.com/a/srscicomp.com/figure-composer/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sruffner.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"supporting/dn_rasterplot.m","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-19T21:53:36.000Z","updated_at":"2024-10-24T23:26:22.000Z","dependencies_parsed_at":"2025-04-11T13:20:56.644Z","dependency_job_id":"8b137611-0f6b-481f-9abe-a153b2770918","html_url":"https://github.com/sruffner/figurecomposer","commit_stats":null,"previous_names":["sruffner/figurecomposer"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sruffner/figurecomposer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sruffner%2Ffigurecomposer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sruffner%2Ffigurecomposer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sruffner%2Ffigurecomposer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sruffner%2Ffigurecomposer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sruffner","download_url":"https://codeload.github.com/sruffner/figurecomposer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sruffner%2Ffigurecomposer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28818533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T18:01:38.485Z","status":"ssl_error","status_checked_at":"2026-01-27T18:01:27.499Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-plotting","data-visualization","java","matlab"],"created_at":"2024-11-14T16:17:48.386Z","updated_at":"2026-01-27T18:40:38.228Z","avatar_url":"https://github.com/sruffner.png","language":"Java","readme":"# FigureComposer\n\n**FigureComposer** is a standalone Java application for preparing, revising and reviewing detailed scientific figures \nintended for journal publication. It is a mature application that has been used by members of Stephen G.\nLisberger's laboratory at Duke University since 2007, as well as some others in the neuroscience commmunity.\n\n\u003cmark\u003e**_NOTE: I am no longer actively developing FC. I have made this repo available for anyone in the neuroscience \ncommunity that continues to use the application and might wish to fork the repo to adapt the program for their own \nuse._**\u003c/mark\u003e\n\n\n## User Guide\nAn [online user's guide](https://sites.google.com/a/srscicomp.com/figure-composer/introduction) provides a thorough \nintroduction to the program, a detailed format description of the application's figure document format (_FypML_), a\ncomplete version history, and a downloads page where you can get the latest release.\n\n## Installation\nAn (unsigned) application bundle is available for installation on MacOS, an installer EXE for Windows, and an executable\nJAR for Linux. You must separately install a Java Runtime Environment compatible with your host operating system in \norder to run **FigureComposer**. As of version 5.2.0, a Java 8 runtime is required. For details, see the \n[online guide](https://sites.google.com/a/srscicomp.com/figure-composer/download-files).\n\n**_NOTE: As of version 5.5.0, the code base is JDK11-compliant, and a Java 11 runtime is required. Recommend using\n[Amazon Corretto 11](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/what-is-corretto-11.html)._**\n\n### Related Matlab Utilities\nResearchers in the Lisberger and other labs have used [_Matlab_](https://www.mathworks.com/products/matlab.html) \nextensively over the years to process their experimental data and prepare draft figures for journal publication. I have \nwritten a number of Matlab scripts to address the issue of how to conveniently get data into or out of a **FigureComposer**\nfigure (_FypML_ file). You will find these scripts in the `supporting` folder within the repo. These are probably of\nlimited use, since **FigureComposer** (as of version 4.2.3) can import many Matlab figure (`*.fig`) files directly.\n\nThe various utility scripts are described in details in the \n[online guide](https://sites.google.com/a/srscicomp.com/figure-composer/loading-data/matlab-utilities).\n\nThe `matfig2fyp()` script relies on JAR files `hhmi-ms-common.jar` and `hhmi-ms-datanav.jar`, which are included in the\n**Figure Composer** download ZIP and must be installed in Matlab's Java class path. **_As of version 5.5.0, the\nclass files in these JARs are JDK11-compliant, so they require that Matlab be configured to use a Java 11 runtime_**. \nMatlab's default bundled JRE is still Java 8 as of R2024a, but it supports using OpenJDK 11 runtimes such as Amazon \nCorretto 11. To specify the JRE that Matlab should use, run `jenv(\u003cjre_home\u003e)` from the Matlab command line (where \n`\u003cjre_home\u003e` is the installation path for the OpenJDK 11-compliant runtime environment), then restart Matlab.\n\n## Building/Packaging\n- The code base in this repository is set-up as an IntelliJ IDEA project, and the IDEA project settings are included in \nthe repo.\n- The `macosxdist` folder contains resource files for packaging FC as a MacOS application bundle, which is then archived\nin a ZIP file for distribution. \n- The `windist` folder contains resource files for building a Windows installer EXE for FC. The installer is created on\na Windows workstation using [InnoSetup](https://jrsoftware.org/isinfo.php).\n- An Ant build file, `release.xml`, semi-automates the build process: creating the source JARs for the three modules \nin the IDEA project (`common`, `jmatio`, and `figurecomposer`), packaging the class files in module JARS, and preparing \nZIP archives for installing FC on MacOS, Windows, and Linux. **_Be sure to read through this file carefully before \nattempting to build your own release, and always rebuild the entire project before running the Ant build._**\n\n## License\n**Figure Composer** was created by [Scott Ruffner](mailto:sruffner@srscicomp.com). It is licensed under the terms of \nthe MIT license.\n\n## Credits\n**FigureComposer** was developed with funding provided by the Stephen G. Lisberger laboratory in the Department of\nNeurobiology at Duke University.\n\nAs a full-featured Java Swing application, it relies heavily upon Oracle's Java Development Kit; as of June 2024, it is \nJDK11-compliant and built with Amazon Corretto 11. \n\nIn addition, it makes use of a number of open-source software packages. Without these third-party packages, \n**FigureComposer** would have been a much more difficult endeavor. \n- _FypML_ figure documents have been read and written \nusing [**MXP1**](https://github.com/codelibs/xpp3?tab=readme-ov-file), an open-source implementation of an XML pull \nparser. As of version 5.2.0, this library is no longer used; instead, FC relies on the Streaming API for XML Processing \nthat is now part of the Java runtime environment.\n- The JavaScript Object Notation (JSON) data interchange format is used heavily, and the application relies on the \n[org.json](https://www.json.org/json-en.html) package to read and write JSON data.\n- _Matlab_ FIG files are read and parsed using a modified version of the \n[Java MAT-file IO (JMatIO)](https://sourceforge.net/projects/jmatio/) package.\n- _FypML_ figures are exported to Portable Document Format (PDF) and Scalable Vector Graphics (SVG) files \nwith the help of the [iText5 PDF](https://itextpdf.com/products/itext-5-legacy) and the \n[JFreeSVG](https://www.jfree.org/jfreesvg/index.html) libraries, respectively.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsruffner%2Ffigurecomposer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsruffner%2Ffigurecomposer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsruffner%2Ffigurecomposer/lists"}