diff --git a/.claudeignore b/.claudeignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.claudeignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a55b8bd --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Dependencies +node_modules/ +vendor/ + +# Build output +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Environment +.env +.bundle/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log +npm-debug.log* + +# Temporary files +*.tmp +*.bak + +# Archived reference +v1-reference/ diff --git a/404.html b/404.html index 9e5cbaa..b433be4 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@

Page Not Found

The page you're looking for doesn't exist or has been moved.

- + Return Home diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..4d78862 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,93 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +VFX Reference Platform - a Jekyll-based static site documenting reference platform specifications for VFX/animation software. Hosted with Github Pages and published to https://vfxplatform.com. + +**Stack:** Jekyll 4.3 (Ruby), Tailwind CSS 3.4, PostCSS, vanilla JS + +## Documentation + +The README.md file contains a friendly guide on how to administer the site aimed at the site adminitration team. It should be updated as features are added or changed so that it always accurately reflects up to date instructions on how to update the site content. + +## Development Commands + +```bash +# Install dependencies +npm install && bundle install + +# Development (CSS watch + Jekyll livereload on localhost:4000) +npm run dev + +# Production build +npm run build + +# Individual commands +npm run build:css # One-time Tailwind build +npm run watch:css # Watch mode for CSS +bundle exec jekyll serve --livereload +``` + +## Architecture + +**Data-driven content:** Platform specs live in YAML files, not code. Most updates are data edits. + +``` +_data/ +├── platforms/CY20XX.yml # Version specs per year (CY2014-CY2026) +├── components.yml # Component metadata and categories +├── faq.yml # FAQ Q&A content +├── footer.yml # Footer content (description, resources, contact) +├── navigation.yml # Main navigation menu +├── notes.yml # Technical footnotes +├── status_updates.yml # Status updates shown on homepage +└── useful_links.yml # Useful links section on homepage +``` + +**Key config in `_config.yml`:** +- `current_year: 2026` - Active platform year +- `supported_years_count: 4` - Total number of years shown in tables, except on pages where all platform history is shown. + +**Layouts:** +- `_layouts/default.html` - Base page layout (centered content container) +- `_layouts/home.html` - Full-width layout used by pages with hero sections + +**Key templates and assets:** +- `_includes/platform-table.html` - Main specs table component +- `assets/css/main.css` - Tailwind directives + custom components +- `assets/js/year-comparison.js` - Compare page logic +- `assets/js/component-detail.js` - Component detail page +- `assets/js/table-collapse.js` - Collapsible table categories +- `assets/js/note-popover.js` - Note tooltip/bottom sheet +- `assets/js/dark-mode.js` - Dark mode toggle persistence + +## Common Tasks + +**Add new platform year:** Create `_data/platforms/CY[YEAR].yml` following existing schema. Tables auto-render it. + +**Update component versions:** Edit `_data/platforms/CY[YEAR].yml` - no code changes needed. + +**Add FAQ entry:** Append to `_data/faq.yml` + +**Add technical note:** Add to `_data/notes.yml`, reference with `note:` key in platform data + +**Update footer content:** Edit `_data/footer.yml` + +**Update status updates:** Edit `_data/status_updates.yml` + +**Update useful links:** Edit `_data/useful_links.yml` + +## Platform Data Schema + +Each `_data/platforms/CY[YEAR].yml` contains: +- `year`, `status`, `last_updated` +- `linux`: gcc/glibc versions with `min_max: true` flag +- `macos`: deployment_target with optional `note:` reference +- `windows`: visual_studio, sdk versions +- `components`: python, qt, pyqt, pyside, numpy, imath, openexr, ptex, opensubdiv, openvdb, alembic, fbx, opencolorio, aces, boost, onetbb, onemkl, cpp_standard + +## Deployment + +Push to main branch triggers GitHub Actions (`.github/workflows/deploy.yml`) which builds and deploys to GitHub Pages automatically. A separate `.github/workflows/deploy-staging.yml` workflow deploys the staging branch for preview. diff --git a/FAQ/index.html b/FAQ/index.html index ceec61e..dd5b33b 100644 --- a/FAQ/index.html +++ b/FAQ/index.html @@ -1,5 +1,5 @@ --- -layout: default +layout: home title: Frequently Asked Questions description: "VFX Reference Platform - Frequently Asked Questions" --- @@ -23,6 +23,23 @@ } -

Frequently Asked Questions

+ +
+
+
+
+

+ Frequently Asked Questions +

+

+ Common questions about the VFX Reference Platform and how it works. +

+
+
+
+
-{% include faq-accordion.html %} + +
+ {% include faq-accordion.html %} +
diff --git a/README.md b/README.md index 10a94a3..1bebfcb 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ This repo hosts the VFX Reference Platform web site hosted at https://vfxplatfor - [Updating Component Versions](#updating-component-versions) - [Adding/Editing Notes (Footnotes)](#addingediting-notes-footnotes) - [Adding FAQ Entries](#adding-faq-entries) + - [Editing Homepage Content](#editing-homepage-content) + - [Editing Footer Content](#editing-footer-content) - [Modifying Navigation](#modifying-navigation) 5. [Deployment](#deployment) - [Staging](#staging) @@ -81,13 +83,17 @@ _data/ │ └── CY2026.yml ├── components.yml # Component metadata and categories ├── faq.yml # FAQ questions and answers +├── footer.yml # Footer content (description, resources, contact) ├── navigation.yml # Main navigation menu links ├── notes.yml # Technical footnotes referenced from platform data -└── status_updates.yml # Status updates shown on the homepage +├── status_updates.yml # Status updates shown on the homepage +└── useful_links.yml # Useful links shown as cards on the homepage ``` **Key point:** You rarely need to touch HTML templates. Almost all routine updates involve editing these YAML files. +**Interactive features:** The platform table supports collapsible category sections — users can click any category header (Linux, macOS, Windows, Components) to collapse/expand its rows. Collapsed state is remembered across visits via localStorage. + --- ## Common Tasks @@ -275,6 +281,55 @@ questions: --- +### Editing Homepage Content + +The homepage uses a dedicated `home` layout (different from other pages) that allows full-width sections like the hero. Content is structured into sections: + +1. **Hero section** — Title, subtitle, and call-to-action buttons. The hero text is configured in `_config.yml` under the `hero:` key: + ```yaml + hero: + subtitle: "A standardized set of tool and library versions..." + cta_primary_text: "View Latest Platform" + cta_primary_url: "#reference-platform" + cta_secondary_text: "Join Discussion" + cta_secondary_url: "https://groups.google.com/g/vfx-platform-discuss" + ``` + +2. **Current Status** — Shows the latest 4 status updates as cards (data from `_data/status_updates.yml`) + +3. **Reference Platform** — The main version specs table (data from `_data/platforms/`) + +4. **Support Guidance** — Two cards describing support window and best practices + +5. **Useful Links** — Card grid driven by `_data/useful_links.yml`: + ```yaml + - title: "Link Title" + url: "https://example.com" + description: "Brief description of the link." + icon: "chart" # Options: chart, python, container, grid, matrix + ``` + +### Editing Footer Content + +**File:** `_data/footer.yml` + +The footer displays across all pages with three columns: about, resources, and contact. + +```yaml +description: "Site description text..." + +resources: + - title: "Discussion Group" + url: "https://groups.google.com/g/vfx-platform-discuss" + - title: "Academy Software Foundation" + url: "https://www.aswf.io/" + +contact_email: "feedback@vfxplatform.com" +collaboration_text: "Updated annually in collaboration with..." +``` + +--- + ### Modifying Navigation **File:** `_data/navigation.yml` @@ -285,6 +340,8 @@ The main navigation menu is a simple list: main: - title: Home url: / + - title: History + url: /platform_history.html - title: Compare url: /compare.html - title: Linux @@ -293,8 +350,6 @@ main: url: /FAQ/ - title: About url: /about/ - - title: Contact - url: /contact/ ``` Add, remove, or reorder items as needed. URLs can be: @@ -488,10 +543,11 @@ current_year: 2026 supported_years_count: 4 ``` -Other settings (rarely need changing): +Other settings: - `title`: Site title - `description`: Site description for SEO - `url`: Production site URL +- `hero`: Homepage hero section text and CTA buttons (subtitle, button labels, URLs) **Important:** After changing `_config.yml`, you must restart the local Jekyll server to see changes. diff --git a/_config.yml b/_config.yml index 7a156c7..f5fb494 100644 --- a/_config.yml +++ b/_config.yml @@ -41,6 +41,14 @@ plugins: author: name: VFX Reference Platform Working Group +# Hero section +hero: + subtitle: "The VFX Reference Platform defines a set of tool and library versions to establish a consistent build target for software providers. Its purpose is to minimise incompatibilities between different software packages, ease the support burden for integrated pipelines and encourage further adoption of Linux." + cta_primary_text: "View Latest Platform" + cta_primary_url: "#reference-platform" + cta_secondary_text: "Join Discussion" + cta_secondary_url: "https://groups.google.com/g/vfx-platform-discuss" + # Analytics cloudflare_analytics: 75ac194cb08e4271aa16a0649ac38734 diff --git a/_data/footer.yml b/_data/footer.yml new file mode 100644 index 0000000..2c8a2f4 --- /dev/null +++ b/_data/footer.yml @@ -0,0 +1,12 @@ +description: "A standardized set of tool and library versions to minimize incompatibilities between software packages in the VFX industry." + +resources: + - title: "Discussion Group" + url: "https://groups.google.com/g/vfx-platform-discuss" + - title: "Academy Software Foundation" + url: "https://www.aswf.io/" + - title: "VFXpy Tracker" + url: "https://vfxpy.com/" + +contact_email: "feedback@vfxplatform.com" +collaboration_text: "Updated annually in collaboration with the Visual Effects Society Technology Committee." diff --git a/_data/navigation.yml b/_data/navigation.yml index 8faffde..cbd22af 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -1,6 +1,8 @@ main: - title: Home url: / + - title: History + url: /platform_history.html - title: Compare url: /compare.html - title: Linux @@ -9,5 +11,3 @@ main: url: /FAQ/ - title: About url: /about/ - - title: Contact - url: /contact/ diff --git a/_data/useful_links.yml b/_data/useful_links.yml new file mode 100644 index 0000000..b0ca923 --- /dev/null +++ b/_data/useful_links.yml @@ -0,0 +1,24 @@ +- title: "2021 Studio Platform Survey Report" + url: "https://bit.ly/VRP21Rep" + description: "Results from the 2021 survey of VFX studio platform configurations and requirements." + icon: "chart" + +- title: "VFXpy Python 3 Compatibility Tracker" + url: "https://vfxpy.com/" + description: "Track Python 3 compatibility for common VFX and animation software packages." + icon: "python" + +- title: "ASWF Docker Containers" + url: "https://github.com/AcademySoftwareFoundation/aswf-docker" + description: "Ready-to-build containers implementing VFX Reference Platform compliant build environments." + icon: "container" + +- title: "DCC Tool Version Compatibility" + url: "https://docs.google.com/spreadsheets/d/1-8VdfspUBpkYJzfKKovI-H2bZeb5Wn3cuNPsq_Ho3S8/edit?usp=sharing" + description: "Track major digital content creation tool version compatibility with each platform year." + icon: "grid" + +- title: "VFX Industry Build Matrix" + url: "https://docs.google.com/spreadsheets/d/1EwRlz5ZYObEOdBfIk8iTX5thlpTyEAfp3bxOgAfFOiU/edit?usp=sharing" + description: "Cross-reference of build configurations used across the VFX industry." + icon: "matrix" diff --git a/_includes/dark-mode-toggle.html b/_includes/dark-mode-toggle.html index 523b3ab..9af9c13 100644 --- a/_includes/dark-mode-toggle.html +++ b/_includes/dark-mode-toggle.html @@ -1,7 +1,7 @@ + + + - -
- - - Unchanged - - - - Changed - - - - Added - - - - Removed - -
+
+ +
+ -
- -
+ + diff --git a/component.html b/component.html new file mode 100644 index 0000000..f3fb928 --- /dev/null +++ b/component.html @@ -0,0 +1,33 @@ +--- +layout: home +title: Component Details +description: "View version history for a VFX Reference Platform component across all years" +--- + + +
+
+
+
+ + + Back to Compare + +

+ Component Details +

+

+
+
+
+
+ + +
+
+ +
+
+ + + diff --git a/contact/index.html b/contact/index.html deleted file mode 100644 index 2df82aa..0000000 --- a/contact/index.html +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default -title: Contact -description: "VFX Reference Platform - Contact information" ---- - -

Contact

- -

- To provide feedback on the VFX Reference Platform please send an email to: feedback@vfxplatform.com -

- -

- For open discussion of the platform, please join the Google Group: vfx-platform-discuss -

- diff --git a/index.html b/index.html index 1dd77c4..abb2782 100644 --- a/index.html +++ b/index.html @@ -1,65 +1,206 @@ --- -layout: default +layout: home title: Home description: "VFX Reference Platform - Reference Platform for VFX Software" --- {% assign current_year = site.current_year %} {% assign supported_years = "" | split: "" %} -{% for i in (0..3) %} +{% assign final_count = 0 %} +{% assign max_finals = site.supported_years_count %} +{% for i in (0..20) %} {% assign year = current_year | minus: i %} - {% assign supported_years = supported_years | push: year %} + {% assign year_key = "CY" | append: year %} + {% assign year_data = site.data.platforms[year_key] %} + {% if year_data %} + {% if year_data.status == 'final' %} + {% if final_count < max_finals %} + {% assign supported_years = supported_years | push: year %} + {% assign final_count = final_count | plus: 1 %} + {% endif %} + {% else %} + {% assign supported_years = supported_years | push: year %} + {% endif %} + {% endif %} + {% if final_count >= max_finals %} + {% break %} + {% endif %} {% endfor %} -

- The VFX Reference Platform is a set of tool and library versions to be used as a common target platform for building software for the VFX industry. Its purpose is to minimise incompatibilities between different software packages, ease the support burden for integrated pipelines and encourage further adoption of Linux by both studios and software vendors. The Reference Platform is updated annually by a group of software vendors in collaboration with the Visual Effects Society Technology Committee. -

- -

Current Status

- -

The Calendar Year {{ current_year }} (CY{{ current_year }}) Reference Platform is the target for all major software releases in {{ current_year }}.

- -{% include status-updates.html limit=5 %} - -

- Previous status updates... -

- -

Reference Platform

- -

Each annual reference platform is designated by the calendar year in which major product releases should be targeting that particular reference.

- -

- All versions should be considered exact required versions, except for those components where - ↓↑ - indicates that: -

- - - -{% include platform-table.html years=supported_years show_history_link=true %} - -

Support Guidance

- -

- Providers of software libraries focused on VFX and animation content creation should aim to support their releases for the current calendar year and the three preceding years with compatible updates. Studios and end users should have no expectation of support for older libraries. -

- -

- The VFX Reference Platform strongly recommends open source project maintainers provide a level of support described by the FLOSS Best Practices Criteria, which is already a requirement for all Academy Software Foundation projects. -

- - - - + +
+
+
+
+

+ VFX Reference
+ Platform +

+

+ {{ site.hero.subtitle }} +

+ +
+
+
+
+ + +
+
+

Current Status

+
+ +

+ The Calendar Year {{ current_year }} (CY{{ current_year }}) Reference Platform is the target for all major software releases in {{ current_year }}. +

+ + {% include status-updates.html limit=4 style="cards" %} + +

+ + Previous status updates → + +

+
+ + +
+
+

Reference Platform

+
+ +
+
+ + + +
+

+ Each annual reference platform is designated by the calendar year in which major product releases should be targeting that particular reference. +

+

+ All versions should be considered exact required versions, except for those components where + ↓↑ + indicates that: +

+
    +
  • For systems (or software) providing the library at runtime, versions should be considered minimum version required.
  • +
  • Otherwise, for software building against the library, versions should be considered highest version allowed.
  • +
+
+
+
+ + {% include platform-table.html years=supported_years %} + + {% assign oldest_year = supported_years | last | minus: 1 %} +

+ + View Earlier Platforms → + +

+
+ + +
+
+

Support Guidance

+
+ +
+ +
+
+
+ + + +
+

Support Window

+
+

+ Providers of software libraries focused on VFX and animation content creation should aim to support their releases for the current calendar year and the three preceding years with compatible updates. Studios and end users should have no expectation of support for older libraries. +

+
+ + +
+
+
+ + + + +
+

Best Practices

+
+

+ The VFX Reference Platform strongly recommends open source project maintainers provide a level of support described by the FLOSS Best Practices Criteria, which is already a requirement for all Academy Software Foundation projects. +

+
+
+
+ + + {% include note-popover-content.html %} diff --git a/linux/index.html b/linux/index.html index 12f4d4f..41504a0 100644 --- a/linux/index.html +++ b/linux/index.html @@ -1,100 +1,161 @@ --- -layout: default +layout: home title: Linux in VFX description: "VFX Reference Platform - Linux in VFX and Animation" --- -

Linux in VFX

- -

- As a successor to Silicon Graphics' IRIX operating system, Linux is the primary operating system used on artist workstations at many studios. The VFX Reference Platform has two Linux-specific objectives: -

- - - -
- -

September 2024

- -

- The 2024 VFX/Animation Studio Workstation Linux Report (pdf) is now available. This report surveys the current state of migration from CentOS Linux 7 and future plans for artist workstations following the CentOS 7 End Of Life date in June 2024. -

- -
- -

August 2023

- -

- Recording of the 2023 VFX Reference Platform User Group meeting from August 1st, 2023: -

- -
- -
- -
- -

August 2022

- -

- Recording of presentation from ASWF Open Source Days 2022: "The Future of Linux for Professional Artist Workstations": -

- -
- -
- -

- Download the VFX Linux Distribution Recommendation Report (pdf). -

- -
- -

January 2022

- -

- Download the 2021 Studio Platform Survey Report (pdf). -

- -
- -

August 2021

- -

- Recording of the VFX Reference Platform "Birds of a Feather" annual meeting (Linux topics begin at 14:48): -

- -
- -
- -

- Download the slide deck (pdf). -

+ +
+
+
+
+

+ Linux in VFX +

+

+ As a successor to Silicon Graphics' IRIX operating system, Linux is the primary operating system used on artist workstations at many studios. +

+
+
+
+
+ + +
+
+
+ + + +
+

+ The VFX Reference Platform has two Linux-specific objectives: +

+
    +
  • Reduce complexity and effort required to support Linux in VFX and Animation
  • +
  • Lower the barrier to adopting Linux as a supported platform both for software providers and end-user studios
  • +
+
+
+
+
+ + +
+
+

Updates

+
+ +
+ +
+
+ + + + + September 2024 + +
+

+ The 2024 VFX/Animation Studio Workstation Linux Report (pdf) is now available. This report surveys the current state of migration from CentOS Linux 7 and future plans for artist workstations following the CentOS 7 End Of Life date in June 2024. +

+
+ + +
+
+ + + + + August 2023 + +
+

+ Recording of the 2023 VFX Reference Platform User Group meeting from August 1st, 2023: +

+ +
+ + +
+
+ + + + + August 2022 + +
+

+ Recording of presentation from ASWF Open Source Days 2022: "The Future of Linux for Professional Artist Workstations": +

+ +

+ Download the VFX Linux Distribution Recommendation Report (pdf). +

+
+ + +
+
+ + + + + January 2022 + +
+

+ Download the 2021 Studio Platform Survey Report (pdf). +

+
+ + +
+
+ + + + + August 2021 + +
+

+ Recording of the VFX Reference Platform "Birds of a Feather" annual meeting (Linux topics begin at 14:48): +

+ +

+ Download the slide deck (pdf). +

+
+
+
diff --git a/platform_history.html b/platform_history.html index c0ff2ac..635a770 100644 --- a/platform_history.html +++ b/platform_history.html @@ -1,5 +1,5 @@ --- -layout: default +layout: home title: Platform History description: "VFX Reference Platform - Historical platform versions from CY2014 to present" --- @@ -15,48 +15,73 @@ {% endfor %} {% assign all_years = all_years | sort | reverse %} -{% comment %} History years = all years except the most recent 4 {% endcomment %} -{% assign history_years = "" | split: "" %} -{% for year in all_years %} - {% assign diff = current_year | minus: year %} - {% if diff >= supported_count %} - {% assign history_years = history_years | push: year %} - {% endif %} -{% endfor %} - -

Reference Platform History

- -

- Below is a list of all the VFX Reference Platform targets going back to the initial release for CY2014. -

- -

- Each annual reference platform is designated by the calendar year in which major product releases should be targeting that particular reference. -

- -

- All versions should be considered exact required versions, except for those components where - ↓↑ - indicates that: -

+ +
+
+
+
+

+ Platform History +

+

+ All VFX Reference Platform targets going back to the initial release for CY2014. +

+ + + + + Compare years side-by-side + +
+
+
+
- + +
+
+
+ + + +
+

+ Each annual reference platform is designated by the calendar year in which major product releases should be targeting that particular reference. +

+

+ All versions should be considered exact required versions, except for those components where + ↓↑ + indicates that: +

+
    +
  • For systems (or software) providing the library at runtime, versions should be considered minimum version required.
  • +
  • Otherwise, for software building against the library, versions should be considered highest version allowed.
  • +
+
+
+
+
-

- Compare years side-by-side → -

+ +
+
+

All Platforms

+
-
- {% for year in history_years %} - {% include year-card.html year=year %} - {% endfor %} -
+
+ {% for year in all_years %} + {% include year-card.html year=year %} + {% endfor %} +
+
-

Previous Status Updates

+ +
+
+

Previous Status Updates

+
-{% include status-updates.html offset=5 %} + {% include status-updates.html offset=5 style="cards" show_latest=false %} +
{% include note-popover-content.html %} diff --git a/tailwind.config.js b/tailwind.config.js index 1fd7e7c..18f7cc8 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -18,11 +18,6 @@ module.exports = { darkMode: 'class', theme: { extend: { - colors: { - 'vfx-dark': '#1a1a2e', - 'vfx-primary': '#16213e', - 'vfx-accent': '#0f3460', - }, fontFamily: { sans: ['Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'], mono: ['JetBrains Mono', 'Fira Code', 'Consolas', 'monospace'],