Skip to content

Add macOS support#39

Merged
tattn merged 1 commit intomainfrom
feature/macOS
Jan 26, 2026
Merged

Add macOS support#39
tattn merged 1 commit intomainfrom
feature/macOS

Conversation

@tattn
Copy link
Copy Markdown
Owner

@tattn tattn commented Jan 26, 2026

  • Introduced macOS support in the VRMKit package by updating the platforms in Package.swift.
  • Created new asset files for AccentColor and AppIcon in the MacExample project.
  • Implemented ContentView and MacExampleApp for the macOS application.
  • Updated the ContentViewModel to handle VRM entity loading and animation.
  • Refactored image handling to support both UIKit and AppKit with VRMImage and VRMColor types.
  • Enhanced VRMEntityLoader and related classes to accommodate macOS compatibility.
  • Updated README to reflect new requirements and platform support.
  • Added tests to ensure compatibility with the new macOS implementation.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @tattn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly extends the VRMKit's reach by introducing comprehensive support for macOS. The core objective was to enable VRM model rendering and interaction on desktop Apple platforms, aligning the project with a broader ecosystem. This involved not only updating package configurations but also refactoring platform-specific UI components into generic typealiases and creating a dedicated macOS example application to showcase the new capabilities. The changes ensure that the VRMKit remains a versatile tool for 3D model integration across Apple's diverse range of devices.

Highlights

  • macOS Platform Support: The VRMKit package now officially supports macOS 12.0+, expanding its compatibility beyond iOS, watchOS, and visionOS. This involved updating the Package.swift manifest and various build configurations within the Xcode project.
  • Cross-Platform Image and Color Handling: Introduced VRMImage and VRMColor typealiases to abstract UIImage/UIColor (UIKit) and NSImage/NSColor (AppKit), enabling seamless image and color management across different Apple platforms, particularly for macOS integration.
  • New MacExample Application: A new example application, MacExample, has been added to demonstrate VRM model loading and animation on macOS using SwiftUI and RealityKit. This includes a ContentView and ContentViewModel to manage the VRM entity's lifecycle and interactive animations.
  • VRM Entity Loader Enhancements: The VRMEntityLoader and related classes in VRMRealityKit and VRMSceneKit have been updated to ensure full compatibility with macOS, including changes to @available attributes and internal image/color processing logic.
  • Documentation and Requirements Update: The README.md file has been updated to reflect the new macOS support and the increased Swift version requirement to 6.0+.
  • Xcode Project Configuration: The project.pbxproj file has undergone significant modifications to incorporate the new MacExample target, its build phases, file references, and specific macOS build settings, including code signing and sandbox entitlements.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully introduces macOS support by updating package platforms, Xcode project configurations, and adapting image and color handling for cross-platform compatibility. The changes are well-structured and address the necessary platform-specific differences.

Comment thread Example/MacExample/ContentView.swift
- Introduced macOS support in the VRMKit package by updating the platforms in Package.swift.
- Created new asset files for AccentColor and AppIcon in the MacExample project.
- Implemented ContentView and MacExampleApp for the macOS application.
- Updated the ContentViewModel to handle VRM entity loading and animation.
- Refactored image handling to support both UIKit and AppKit with VRMImage and VRMColor types.
- Enhanced VRMEntityLoader and related classes to accommodate macOS compatibility.
- Updated README to reflect new requirements and platform support.
- Added tests to ensure compatibility with the new macOS implementation.
@tattn tattn marked this pull request as ready for review January 26, 2026 11:51
@tattn tattn merged commit 2c2dbd7 into main Jan 26, 2026
4 checks passed
@tattn tattn deleted the feature/macOS branch January 26, 2026 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant