Apple Silicon Guide. Learn all about the A17 Pro, A16 Bionic, R1, M1-series, M2-series, and M3-series chips. Along with all the Devices, Operating Systems, Tools, Gaming, and Software that Apple Silicon powers.
Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.
Apple M3/M3 Pro/M3 Max/M3 Ultra Architectures.
Apple M2/M2 Pro/M2 Max/M2 Ultra Architecture.
Apple M1/M1 Pro/M1 Max/M1 Ultra Architectures.
Does it ARM? Apps that are reported to support Apple Silicon
M1 Parallels Windows compatible games list | AppleGamingWiki
Games and Apps on Apple Silicon (Compatibility Sheet) by Thomas Schranz(@__tosh on Twitter)
DevToysMac is the mac app version of DevToys for Windows.
asitop is a Performance monitoring CLI tool for Apple Silicon.
macOS Security and Privacy Guide is a collection of techniques for improving the security and privacy of a modern MacBook running a recent version of macOS.
macOS Security Compliance Project is an open source effort to provide a programmatic approach to generating security guidance. The configuration settings in this document were derived from National Institute of Standards and Technology (NIST) Special Publication (SP) 800-53, Security and Privacy Controls for Information Systems and Organizations, Revision 5.
Apple Hypervisor is a framework that builds virtualization solutions on top of a lightweight hypervisor, without third-party kernel extensions. Hypervisor provides C APIs so you can interact with virtualization technologies in user space, without writing kernel extensions (KEXTs). As a result, the apps you create using this framework are suitable for distribution on the Mac App Store.
Apple A-series is Apple’s 64-bit ARM-based system on a chip (SoC) used in their iPhones and iPads. Though, at WWDC 2020 it was announced that Apple Silicon would transition into Mac laptops.
A17 Pro is built on new 3nm architecture. It has 6-CPU cores, with the 2-performance cores 10% faster and the 4-efficiency cores significantly more efficient. Along with a 6-core GPU that is 20 percent faster than the A16 Bionic(iPhone 15 & 15 Plus models). The Neural Engine, will be almost twice as fast as the A16 Bionic. Apple has also added hardware-accelerate ray-tracing to the A17 Pro GPU. The A17 Pro chip is available in the iPhone 15 Pro and 15 Pro Max.
Apple A17 Pro Architecture. Image Credit: Apple
A16 Bionic Chip is Apple’s first 4nm SoC for iPhone 14 Pro & Max with a 6-core CPU has two performance cores and 4 high-efficiency cores. Along with a 5-core GPU and 16-core neural engine.
A16 Bionic Chip Architecture
H2 Chip is Apple’s SoC for the AiPods Pro that facilitates stronger(2x more) active noise cancellation, personalized spatial audio, and better performance during phone calls.
H2 chip powering the AirPods Pro. Credit: Apple
The S9 chip has 60% more transistors in its CPU than the Series 8, and 30% more in its GPU. Along with neural engine boosting on-device processing for Siri requests, including 25% faster voice dictation in the Apple Watch Series 9.
S9 Chip for Apple Watch Series 9. Image Credit: Apple
U1 Ultra Wideband (UWB) chip is an Apple-designed silicon chip that has Ultra Wideband technology for spatial awareness. The U1 chip enables directional AirDrop functionality.
Apple devices with the U1 chip
U1 Chip Die
The R1 chip is dedicated toward real-time sensor processing, taking the input from 12 cameras, five sensors (including a LIDAR sensor) and six microphones on the Vision Pro headset.
R1 & M2 chips in the Vision Pro Headset
Apple M1 Chip is Apple’s first SoC chip designed specifically for their ARM Mac products, it delivers incredible performance(8-core CPU and 8-core GPU), custom technologies, and great power efficiency. The M1 Chip is now available for Macbook Pro 13 with M1, Macbook Air 13 with M1, Mac Mini with M1, iPad Pro, and iPad Air.
M1 Chip. Source: Apple
Apple M1 Pro Chip is a 8 or 10-core system-on-a-chip (SoC) architecture designed for pro systems in the MacBook Pro 14”. The chip features fast unified memory, industry-leading performance per watt, and incredible power efficiency, along with increased memory bandwidth and capacity. The M1 Pro offers up to 200GB/s of memory bandwidth with support for up to 32GB of unified memory and a GPU (14-core or 16-core option).
M1 Pro Chip. Source: Apple
Apple M1 Max Chip is a 10-core system-on-a-chip (SoC) architecture designed for pro systems in the MacBook Pro 16”. The chip features fast unified memory, industry-leading performance per watt, and incredible power efficiency, along with increased memory bandwidth and capacity. The M1 Pro offers up to 400GB/s of memory bandwidth with support for up to 64GB of unified memory and a GPU (16-core or 32-core option).
M1 Max Chip. Source: Apple
M1/ M1 Pro/ M1 Max CPU Performance. Source: Apple
M1/ M1 Pro/ M1 Max GPU Performance. Source: Apple
Apple M1 Ultra Chip is a Apple’s most powerful silicon chip in their M1-series lineup. The M1 Ultra is composed of two M1 Max chips that are connected together using Apple’s UltraFusion Architecture packaging. This means the M1 Ultra can be configured with up to 128GB of high-bandwidth, low-latency unified memory that can be accessed by the 20-core CPU, 64-core GPU (800GB/s memory bandwidth), and 32-core Neural Engine. The M1 Ultra is currently available in Apple’s Mac Studio.
M1 Ultra Chip. Source: Apple
M1 Ultra CPU Performance. Source: Apple
M1 Ultra GPU Performance. Source: Apple
Apple M2 Chip has a 18% faster CPU, 35% faster GPU, and 40% faster Neural Engine than the base M1 chip. It can be configured with up to 24GB of high-bandwidth, low-latency unified memory that can be accessed by the 8-core CPU, 10-core GPU (100GB/s memory bandwidth), and 16-core Neural Engine. The M2 will be available in Apple’s new MacBook Air, MacBook Pro 13" with old design, and iPad Pro with M2 .
M2. Source: Apple
M2 CPU Performance. Source: Apple
M2 GPU Performance. Source: Apple
M1 vs M2. Source: Apple
M2 Gaming Performance. Source: Apple
M2 Image Processing Performance. Source: Apple
M2 Video editing Performance. Source: Apple
M2 Image filters & Effects Performance. Source: Apple
Apple M2 Pro Chip has a 20% faster CPU, 30% faster GPU, and 40% faster Neural Engine than the base M1 Pro chip. It can be configured with up to 32GB of high-bandwidth, low-latency unified memory that can be accessed by the 12-core CPU, 19-core GPU (200GB/s memory bandwidth), and 16-core Neural Engine. The M2 Pro will be available in Apple’s MacBook Pro 14", MacBook Pro 16", and Mac mini.
M2 Pro Chip. Image Credit: Apple
Apple M2 Max Chip is a Apple’s most powerful silicon chip in their M2-series for right now. The M2 has a 20% faster CPU, 30% faster GPU, and 40% faster Neural Engine than the base M1 Max chip. It can be configured with up to 96GB of high-bandwidth, low-latency unified memory that can be accessed by the 12-core CPU, 38-core GPU (400GB/s memory bandwidth), and 16-core Neural Engine. The M2 Max will be available in Apple’s MacBook Pro 14", MacBook Pro 16", and Mac mini.
M2 Max Chip. Image Credit: Apple
The M2 Ultra is composed of two M2 Max chips that are connected together using Apple’s UltraFusion Architecture packaging.
The M2 Ultra can be configured with up to 192GB of high-bandwidth, low-latency unified memory that can be accessed by the 24-core CPU, 76-core GPU (800GB/s memory bandwidth), and 32-core Neural Engine. The M2 Ultra is available for the Mac Studio and Mac Pro.
Apple M3 Chip has a 35% faster CPU, 65% faster GPU, and 40% faster Neural Engine than the base M1 chip. It can be configured with up to 24GB of high-bandwidth, low-latency unified memory that can be accessed by the 8-core CPU (4 high-performance and 4 energy-efficient), 10-core GPU (100GB/s memory bandwidth), and 16-core Neural Engine. Available in the MacBook Pro 14” and iMac.
M3 Chip Architecture. Image Credit: Apple
M3 Chip Family efficiency cores performance. Image Credit: Apple
M3 Chip Family Neural Engine performance. Image Credit: Apple
Apple M3 Pro Chip has a 30% faster CPU, 40% faster GPU, and 40% faster Neural Engine than the base M1 Pro chip. It can be configured with up to 36GB of high-bandwidth, low-latency unified memory that can be accessed by the 12-core CPU (6 high-performance and 6 energy-efficient), 18-core GPU (150GB/s memory bandwidth), and 16-core Neural Engine. Available in the MacBook Pro 14” and MacBook Pro 16”.
M3 Pro Chip Architecture. Image Credit: Apple
Apple M3 Max Chip has a 80% faster CPU, 50% faster GPU, and 40% faster Neural Engine than the base M1 Max chip. It can be configured with up to 128GB of high-bandwidth, low-latency unified memory that can be accessed by the 16-core CPU (12 high-performance and 4 energy-efficient), 40-core GPU (400GB/s memory bandwidth), and 16-core Neural Engine. Available in the MacBook Pro 14” and MacBook Pro 16”.
M3 Max Chip Architecture. Image Credit: Apple
Apple M3 Ultra Chip is a Apple’s most powerful silicon chip in their M3-series lineup. The M3 Ultra is composed of two M3 Max chips that are connected together using Apple’s UltraFusion Architecture packaging. This means the M1 Ultra can be configured with up to 256GB of high-bandwidth, low-latency unified memory that can be accessed by the 32-core CPU (24 high-performance and 8 energy-efficient), 80-core GPU (800GB/s memory bandwidth), and 32-core Neural Engine.
M3 Ultra Chip Architecture.
Important Terms to Know
Vision Pro Headset. Image Credit: Apple
Vision Pro Headset with battery pack. Image Credit: Apple
R1 & M2 chips in the Vision Pro Headset. Image Credit: Apple
visionOS. Image Credit: Apple
visionOS Resources
Apple Vision Pro Headset Specs:
OLEDoS (OLED on Silicon) is a display panel that typically has a diagonal length of less than 1 inch and meets the 3000 ppi-4000 ppi resolution criteria of AR/VR device displays. Existing OLED displays use Low-Temperature-Poly-Silicon (LTPS) or Oxide TFT based on glass substrates. OLEDoS uses silicon-wafer-based CMOS substrates. Using silicon substrates, ultra-fine circuit structures typically used in semiconductor processes can be reproduced, which in turn lead to the creation of ultra-high-resolution OLEDs when organic matter is deposited on them.
LG and Sony OLEDoS Display Specs:
OLEDoS: Solution for ultra-high resolution
Credit: LG
Specs for OLED and OLEDoS
Credit: Sony
MetalFX Rendering. Image Credit: Apple
Devices powered by Apple Silicon.
macOS is an advanced desktop operating system (OS) for Apple’s series of desktops and laptops.
macOS Sonoma. Source: Apple
These are the Mac computers compatible with macOS Sonoma:
iOS is an advanced mobile operating system (OS) for Apple’s series of iPhone products.
iOS 17. Source: Apple
iPadOS is an advanced mobile operating system (OS) for Apple’s series of iPad products.
iPadOS 17. Source: Apple
watchOS is an advanced mobile operating system (OS) for Apple’s series of Watch products.
watchOS 10. Source: Apple
tvOS is an advanced mobile operating system (OS) for Apple’s series of TV streaming devices.
tvOS. Source: Apple
visionOS is Apple’s iOS-like operating system for their upcoming AR/VR (Augmented Reality/Virtual Reality) headset powered by Apple’s Silicon M2 and R1 chips. It will have an App Store with apps that include mixed-reality versions of their core Apple apps like Messages, FaceTime, Maps, and AR/VR games from Apple Arcade. Along with features such as Memojis and SharePlay that could be central to the user experience.
visionOS. Image Credit: Apple
Homebrew is the missing Package Manager for your macOS, Linux, and Windows 10 (with Windows Subsystem for Linux (WSL)) system. Homebrew is an essential tool for any developer/engineer.
MacPorts Project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on macOS.
Nix package manager is a cross-platform package manager that utilizes a purely functional deployment model where software is installed into unique directories generated through cryptographic hashes. Choose from Thousands of Packages The Nix Packages collection (Nixpkgs) is a set of over 80 000 packages for the Nix package manager.
/etc/nixos/configuration.nix
for macOS.Multi-user installation on macOS:
$ sh <(curl -L https://nixos.org/nix/install)
Note: Nix will install all it’s packages within /nix/store
.
Note 2: You may need to source the nix profile at this point.
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
source /nix/var/nix/profiles/default/etc/profile.d/nix.sh
Signal is a state-of-the-art end-to-end encryption (powered by the open source Signal Protocol) messaging app that keeps your conversations secure.
Signal
NordVPN is a VPN service and the flagship product of the cybersecurity company Nord Security. It’s available for wireless routers, NAS devices, and other platforms.
NordVPN
WireGuard is a fast, open-source, and secure VPN tunnel. WireGuard allows users to manage and use WireGuard tunnels. The app can import new tunnels from archives and files, from QR codes, or you can create one from scratch.
WireGuard
Tailscale is a open-source mesh VPN alternative built on WireGuard® that makes it easy to connect your devices. It includes features like automatic key rotation, NAT traversal, and single sign-on with two-factor authentication.
Tailscale
BitWarden is a free and open-source password management service that stores sensitive information such as website credentials(logins and passwords) in an encrypted vault while conveniently keeping them synced between all of your devices.
BitWarden
1Blocker is a fast, secure, and robust tool for iPhone, iPad, and Mac that empowers users to put a stop to invasive online content.
1Blocker
Matrix is a client tool that gives you simple HTTP APIs and SDKs (iOS, Android, Web) to create chatrooms, direct chats and chat bots, complete with end-to-end encryption, file transfer, synchronized conversation history, formatted messages, read receipts and more.
Matrix
Element is a Matrix web client built using the Matrix React SDK. It is a robust and reliable hosting service for fast, secure real time communication.
Element
Nextcloud is a suite of client-server software for creating and using file hosting services. It offers an on-premise Universal File Access and sync platform with powerful collaboration capabilities and desktop, mobile and web interfaces.
Nextcloud
Synology is a tool that allows you to easily access and manage files in your Synology Drive on the go. Apart from common file types, such as documents, images, videos and music, you can also open Synology Office document, spreadsheets and slides in the user-friendly viewer provided by Drive.
Synology
Adobe Lightroom Photo Editor is a free, powerful photo & video editor and camera app that empowers you to capture and edit stunning images. It offers photo & video editing tools like sliders to retouch your images, apply photo filters, fine-tune backgrounds, and use transformative presets to quickly add unique adjustments.
Adobe Lightroom Photo Editor
Things is an app that helps you plan your day, manage your projects, and make real progress toward your goals.
Things
Airbuddy 2 is a utility that let’s you simply open your AirPods case next to your Mac and see the current status right away, just like how it works on your iPhone. A single click gets you connected, a swipe down lets you connect and change listenings modes at the same time. It has a fully customizable battery alerts help you keep track of your device’s batteries.
Airbuddy 2
Fantastical 3 is a calendar app that works seamlessly across your Mac, iPad, iPhone, and Apple Watch.
Fantastical 3
Bartender is an app for macOS that superpowers your menu bar, giving you total control over your menu bar items, what’s displayed, and when, with menu bar items only showing when you need them. It improves your workflow with quick reveal, search, custom hotkeys and triggers, and lots more.
Bartender menu bar tray
Bartender Settings
Magnet is an app that keeps your workspace organized. magnet is activated by dragging, customizable keyboard shortcuts or via menu bar, it declutters your screen by snapping windows into organized tiles.
Magnet
AltTab is an app that brings the power of Windows’s “alt-tab” window switcher to macOS.
AltTab
MonitorControl is an app that controls your external display brightness and volume and shows native OSD. Use menulet sliders or the keyboard, including native Apple keys.
MonitorControl
WebCatalog is an app that turns any Website into Real Desktop Apps.
WebCatalog
Maccy is a lightweight clipboard manager for macOS. It keeps the history of what you copy and lets you quickly navigate, search, and use previous clipboard contents.
Maccy clipboard manager
Daisydisk is a utility that provides a visual breakdown of your disk space in form of an interactive map, reveal the biggest space wasters, and remove them with a simple drag and drop. It supports all kinds of local drives, as well as the most popular cloud disks.
Daisydisk
Page screenshot for Safari is an awesome extension, just a click away, ready to use every time you need to capture a webpage screenshot, either the full page or just part of it. Along with your pictures will also automatically open in Preview for easy editing (annotations, blurring sensitive info, printing, drawing, sharing).
Page screenshot for Safari
Paste is a Clipboard manager for Mac, iPhone, and iPad.
Paste
PasteBot is an indispensable tool to improve your productivity. It quickly recalls clippings that you have copied before and apply powerful text filters to format before pasting. Queue up multiple clippings to paste in sequence.
PasteBot
Speedcut is a tool that lets your remove backgrounds from photos straight from your Mac’s menu bar.
Speedcut
Pulse is a powerful logging system for Apple Platforms builtin in SwiftUI. It allows you to record and inspect logs and URLSession
network requests right from your iOS app. Shared logs and view them in Pulse Pro or use remote logging to see them in real-time. Logs are stored locally and never leave your devices.
p align=“center”>
Pulse
Cleaner One Pro is an all-in-one Mac Master Cleaner App. It can optimize your disk usage, free up space on your Mac, keep the hard drive clean, remove duplicate photos and other files, manage your apps, and much more.
Cleaner One Pro
Yabai is a window management utility that is designed to work as an extension to the built-in window manager of macOS.
Bear is a Private Markdown Editor for iPhone, iPad and Mac. It uses todos to stay on task across every device. Organize easily Link notes to each other to build a body of work. Add hashtags to organize the way you think. Use Face/Touch ID to protect sensitive notes.
Bear
Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files. It comes with 25 core plugins, 638 community plugins, and 130 themes, plus custom styling, you can tweak Obsidian to work and look exactly how you want it.
Obsidian
MarkText is a simple and elegant open-source markdown editor that focused on speed and usability.
MarkText
1Focus is an App and Website Blocker to keep you focused on your work. Block specific apps such as email, games or unsupported web browsers. Also, block internet access by blocking the installed web browsers and the App Store.
1Focus
Harvest is an easy Time Tracking Software With Invoicing. It creates a project Create entries for your projects and tasks, or import them via one of our integrations.
Harvest
MindNode is a map and brainstorming tool that lets you capture, organize, style and share your thoughts. Capture your thoughts Organize your ideas Style your mind map Discreetly Powerful All the features you need.
MindNode
Unclutter is a 3-in-1 productivity app to power up your efficiency and comfort on Mac during the day. It’s a smart and super handy place on your desktop for storing notes, files and pasteboard clips.
Unclutter
Warp terminal is a blazingly fast, rust-based terminal reimagined from the ground up to work like a modern app.
Warp
Jettison is a tool that automatically ejects external disks from your Mac before your computer goes to sleep. Simply close the lid of your MacBook and Jettison will automatically eject your backup drive, iPod, or whatever is connected so you can safely unplug it.
Jettison
Numi is a calculator that magically combines calculations with text, and allows you to freely share your computations. Numi combines text editor and calculator Support plain English.
NuMi
Dropzone is a productivity app for the Mac that makes it faster and easier to move and copy files, launch applications, upload to many different services, and more.
Dropzone
System Color Picker is the macOS color picker as an app with lots of extra features.
System Color Picker
Raycast is a blazingly fast, totally extendable launcher. It lets you complete tasks, calculate, share common links, and much more.
Tinkertool is an application that gives you access to additional preference settings Apple has built into MacOS. This allows to activate hidden features in the operating system and in some of the applications delivered with the system.
Tinkertool
App Cleaner is an application that uninstall/remove applications from Mac entirely with all their preferences, caches and other bits and pieces.
App Cleaner
Infuse is a Video Player for iOS, Apple TV, and Mac. It plays every video file ever created to avoid wasting hours converting and transcoding files.
Infuse Video Player
Note: While Safari is a great browser that comes included on all Apple devices. It may not have all the extensions you need for your workflow so I recommend checking out the several great options below.
Mozilla Firefox is a free and open-source web browser developed by the Mozilla Foundation.
Firefox
Brave is a fast, private and secure web browser for PC, Mac and mobile. It comes with Brave Search, which is a private search engine that puts you first, not big tech for those that don’t want to use Google Search.
Brave
Ungoogled-Chromium is a lightweight approach to removing Google web service dependency.
Ungoogled-Chromium
Vivaldi is a fast, private and secure web browser for PC, Mac and mobile. It comes with built-in features like Notes, Screen Capture, Image Properties and (a lot) more.
Vivaldi
Ghostery Dawn is a fast, private and secure web browser for PC, Mac and mobile. It comes with the complete Ghostery Privacy Suite including Ghostery Glow a private search engine that does not log your search history, which means you get served objective results, not results that are filtered by the likelihood you’ll click on them.
Ghostery Dawn
DuckDuckGo Privacy Browser is a fast, private and secure web browser for MacOS and mobile(iOS and Android).
DuckDuckGo
UBlock Origin is a free and open-source, cross-platform browser extension for content filtering primarily aimed at neutralizing privacy invasion in an efficient, user-friendly method.
Privacy Badger is a browser extension that automatically learns to block invisible trackers.
DuckDuckGo Privacy Essentials is an extension that seamlessly helps prevent your personal information from being exposed during everyday online activity.
Ghostery is a comprehensive privacy protection Ad Blocker browser extension.
HTTPS Everywhere is an extension created by EFF and the Tor Project which automatically switches thousands of sites from insecure “http” to secure “https”.
CleanURLs is an extension will automatically remove tracking elements from URLs to help protect your privacy when browsing through the Internet.
PixelBlock is an Gmail extension that blocks email tracking attempts used to detect when you open and read emails.
Sitejabber is an extension for consumers to find trustworthy online businesses and avoid scams.
1Password is a password manager that provides a place for users to store various passwords, software licenses, and other sensitive information in a virtual vault that is locked with a PBKDF2-guarded master password.
Bitwarden is a free and open-source password management service that stores sensitive information such as website credentials in an encrypted vault.
Guardio is a lightweight extension designed to help you browse quickly and securely. It will clean your browser, speed it up, and protect your private information.
OneTab is an extension that converts your tabs to a list and speeds up your browser.
OnlyOffice is a secure offline/online office suite highly compatible with MS Office formats for Windows, Mac and Linux.
OnlyOffice
FreeOffice is a secure office suite highly compatible with MS Office formats for Windows, Mac and Linux.
FreeOffice
LibreOffice is a free and open-source office productivity software suite similar to Microsoft Office.
LibreOffice
Universal Control is a software feature for Apple devices such as MacBooks and iPads that makes it possible to use a single keyboard, mouse, and trackpad with your Mac and iPad as long as they’re side-by-side. Much like SideCar, there are limited settings for Universal Control. Without a second device connected, you can go to System Preferences -> Displays and click Advanced to pull up Universal Control settings. If a device is already connected, you’ll have to go to Displays -> Display Settings -> Advanced.
Bluetooth, Wi-Fi, and Handoff must be enabled on each device, and they must be within 30 feet. If you prefer to use Universal Control wired, the devices can be connected via USB and you must trust your Mac on your iPad. At the moment, Apple does not mention support for Ethernet but we will test this ourselves during the beta period.
You must also have supported devices. Apple says supported devices include:
Stage Manager is an iPadOS feature that provides better support for external displays. Stage Manager allows the iPad Air(M1 chip) and iPad Pro(M1 chip):
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time.
Seafile is an open source file sync&share solution designed for high reliability, performance and productivity. Sync, share and collaborate across devices and teams.
Synology is a tool that allows you to easily access and manage files in your Synology Drive on the go. Apart from common file types, such as documents, images, videos and music, you can also open Synology Office document, spreadsheets and slides in the user-friendly viewer provided by Drive.
Nextcloud is a suite of client-server software for creating and using file hosting services. It offers an on-premise Universal File Access and sync platform with powerful collaboration capabilities and desktop, mobile and web interfaces.
TeraCopy for Mac is a program to copy and paste large files at a high speed. The program is used for frequent file transfers, large file sizes, moving files from separate SSD drives/Hard drives.
FileRun is a self-hosted Google Drive alternative. It is a full featured web based file manager with an easy to use user interface.
FileBrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory.
Rsync is a utility in the command line which enables users to transfer and synchronize files efficiently between a computer and an external hard drive in the entire connected network.
rsync.net is a Cloud Storage for Offsite Backup that give you an empty UNIX filesystem to access with any SSH tool. Built on ZFS for data security and fault tolerance with support for rsync/sftp/scp/borg/rclone/restic/git-annex.
Warpinator is a free, open-source tool for sending and receiving files between computers that are on the same network.
FileZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface.
WinFsp is a set of software components for Windows computers that allows the creation of user mode file systems. In this sense it is similar to FUSE (Filesystem in Userspace), which provides the same functionality on UNIX-like computers.
SSHFS-Win is a minimal port of SSHFS to Windows. Looking under the hood it uses Cygwin for the POSIX environment and WinFsp for the FUSE (Filesystem in Userspace) functionality.
RiftShare is a cross platform (Windows, MacOS, Linux) file sharing tool that supports fully encrypted transfers both on the local network and off network using a simple passphrase. RiftShare uses magic-wormhole under the hood and is compatible with other magic-wormhole clients. It is also fully open source and licensed under the GPLv3.
Usermode FTP Server is a tool that let’s you start an FTP server as user and transfer files with any FTP client. Allowing you to access your files directly with many file browsers’ builtin FTP support: Windows File Explorer, Thunar, Gnome Files, Dolphin and many more.
TagSpaces is a free, no vendor lock-in, open source application for organizing, annotating and managing local files with the help of tags. It features advanced note taking functionalities and some capabilities of to-do apps. It’s available for Windows, Linux, Mac OS and Android.
Replacing these iCloud services:
Nextcloud is an industry-leading, on-premises content collaboration platform for file sync & share and communication server. It is fully open source and you can host it yourself or pay a company to do it for you. Also checkout the following links below:
Nexcloud login screen
Nextcloud Hub is a tool that allows you to share and collaborate on documents, send and receive email, manage your calendar and have video chats without data leaks. As fully on-premises solution, Nextcloud Hub provides the benefits of online collaboration without the compliance and security risks.
Nexcloud Hub
Nextcloud AIO (All In One) is a tool that provides easy deployment and maintenance with most features included in this one Nextcloud instance.
Features it includes:
Nextcloud Desktop Client is a tool to synchronize files from Nextcloud Server with your computer.
Nextcloud Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.
Nextcloud Files is a tool tool that allows your employees have easy access to their files, photos and documents to work and can share and collaborate with team members, customers and partners. So IT knows nobody besides those they shared with has access to those files.
Nextcloud Talk is a tool that protects your communication better than other team collaboration platforms like Microsoft Teams or Slack, making sure your data stays on your servers. It also goes further than other encrypted communication technologies by keeping even metadata from leaking.
Nextcloud Home is a tool that allows you store your documents, calendar, contacts and photos on your server at home, at one of at one Nextcloud’s providers or in a data center you trust.
Nextcloud Enterprise is a service that gives professional organizations software optimized and tested for mission critical environments.
Nextcloud Outlook Integration is a tool that automatically upload files to replace large attachments or integrate Calendars and Contacts in Microsoft Outlook.
Collabora Online in Nextcloud is a powerful LibreOffice-based online office suite with collaborative editing, which supports all major document, spreadsheet and presentation file formats and works in all modern browsers.
ONLYOFFICE integration in Nextcloud is a service that empowers your users to collaborate on office documents with team members in real time. It has compatibility with Microsoft Office formats means perfect documents, every time.
Nextcloud VM(virtual machine appliance) is a set of carefully crafted family of *nix scripts, which interactively guide you through a quality-controlled installation of a Nextcloud instance for Home/SME Server and scripts for Raspberry Pi 4. It is Community developed and maintained.
Sabrent XTRM Q is a perfect SSD for all your creative pursuits: high-res photos, videos, sound files, etc. It’s perfect for saving, creating and editing available in 500GB, 1TB, 2TB, and 4TB drives.
Shell Thunder is a high-performance Intel-Certified Thunderbolt 3 SSD Enclosure engineered for active cooling with smart fan technology. Shell Thunder is designed for 2280 and 2260 m.2 NVME SSDs for macOS and Windows.
Orico USB4.0 NVMe SSD Enclosure is a high-performance SSD Enclosure engineered with up to a 40Gbps transmission rate and 2 TB capacity. It supports Windows, macOS, and Linux devices.
USB-C to Lightning Cable (2 m) is cable to connect your iPhone, iPad, or iPod with Lightning connector to your USB-C or Thunderbolt 3 (USB-C) enabled Mac for syncing and charging, or to your USB-C enabled iPad for charging.
SanDisk Phone Drive (iPhone, iPad, or MacBook) up to 256GB.
More fast External Storage options for MacOS/iOS/iPadOS:
Proxmox Backup Server is an enterprise backup solution for backing up and restoring VMs, containers, and physical hosts. The open-source solution supports incremental backups, deduplication, Zstandard compression, and authenticated encryption.
Borgmatic is a simple, configuration-driven backup software for servers and workstations. It protects your files with client-side encryption. Backup your databases too. Monitor it all with integrated third-party services.
BorgWarehouse is a fast and modern WebUI for a BorgBackup’s central repository server.
Emborg is a simple command line utility to orchestrate backups. It is built as a front-end to Borg, a powerful and fast de-duplicating backup program.
Vorta is a backup client for macOS and Linux desktops. It integrates the mighty Borg Backup with your favorite desktop environment to protect your data from disk failure, ransomware and theft.
rsync.net is a Cloud Storage for Offsite Backup that give you an empty UNIX filesystem to access with any SSH tool. Built on ZFS for data security and fault tolerance with support for rsync/sftp/scp/borg/rclone/restic/git-annex.
BackupPC is a high-performance, enterprise-grade system for backing up Linux, Windows and macOS PCs and laptops to a server’s disk. BackupPC is highly configurable and easy to install and maintain.
UrBackup is an easy to setup Open Source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time. File and image backups are made while the system is running without interrupting current processes. Available for Windows, macOS, and Linux.
Kopia is a user-friendly desktop app for Windows, macOS, and Linux which allows you to create snapshots, define policies, and restore files quickly with Fast and Encrypted Backups.
rsnapshot is a filesystem snapshot utility based on rsync. This makes it easy to make periodic snapshots of local machines, and remote machines over ssh.
Proton Drive is an end-to-end encrypted Swiss storage space for your files, photos, and videos, ensuring that nobody, except those authorized by you, can access your data.
pCloud is a secure place for your photos, videos and documents from every device, anywhere you go. pCloud starts with 10 GB free storage and automatically backup your photos and videos and free up space from your device.
Restore from Time Machine: Restore your files from a Time Machine backup.
Reinstall macOS: Download and reinstall MacOS.
Safari (or Get Help Online): Use Safari to browse the web and find help for your Mac. Links to Apple’s support website are included. Browser plug-ins and extensions are disabled.
Disk Utility: Use Disk Utility to repair your disk or erase your disk or other storage device.
Additional utilities are available from the Utilities menu in the menu bar, including Startup Security Utility (or Firmware Password Utility), and Terminal.
MacOS Recovery Options
Disk Drill is a free tool that can scan and recover data from virtually any storage device — including internal Macintosh hard drives, external hard drives, cameras, iPhones, iPads, iPods, Android devices, USB flash drives, Kindles, and memory cards. It can read your device even if it is failing, unreadable, or has lost a partition. Combining several powerful scanning algorithms, Disk Drill provides a complete Mac data recovery solution.
DriveDx is an advanced drive-health diagnostic and monitoring utility. It not only monitors the drive’s built-in S.M.A.R.T. status, but also analyzes the changes of all drive health indicators that are closely related to SSD or HDD failures (like SSD wear out / endurance, reallocated bad sectors, offline bad sectors, pending sectors, I/O errors, and more) and alerts the user immediately if anything goes wrong.
AmorphousDiskMark is a tool that measures storage performance.
coconutBattery is a tool that keeps you aware of your current battery health. It shows you live information about the battery quality in your Mac, iPhone and iPad.
Checking Battery on your Mac device.
Checking Battery on your iOS device.
If you have a Mac laptop, you can change the options below to reduce energy use and optimize the lifespan of your battery.
On your Mac, choose Apple menu > System Settings, then click Battery in the sidebar. (You may need to scroll down.)
Do any of the following:
Click the pop-up menu next to Low Power Mode on the right, then choose “Always,” “Only on battery,” or “Only on power adapter.”
Click the Info button next to Battery Health on the right, then turn on Optimized Battery Charging and “Manage battery longevity.”
Click Options on the right, then turn on “Put hard disks to sleep when possible” and “Automatic graphics switching.”
Cooldown is a simple menu bar app that allows you to quickly toggle Low Power Mode on and off.
Planned features
While the Apple Silicon Macbooks, iPhones, iPads, and Air Pods have great battery life. It’s always good to have a portable USB-C powerbank for charging your device when you’re traveling, conferences, etc…
Anker PowerCore III (45W USB-C PD output)
Anker 747 Charger (GaNPrime 150W)
Anker 737 Charger (GaNPrime 120W)
Anker 736 Charger (Nano II 100W)
Anker 735 Charger (GaNPrime 65W)
Anker 733 Power Bank (GaNPrime PowerCore 65W)
Omni 20+ 20000mAh Laptop Power Bank
MAXOAK K2 185Wh/50000mAh Power Bank for Laptop
HenHot 65W USB-C Portable Charger
Baseus 65W USB-C Power Bank with Built-in Cable
Baseus PD 100W USB C to USB C Cable(6.6 ft), 5A Fast Charging USB C Cable with LED Display
JSAUX USB C to USB C Cable 100W/5A [2-Pack 6.6ft+6.6ft], QC 4.0/USB PD Type-C Fast Charging
Full disk encryption is pretty much self-explanatory. You want to encrypt your disk, so you prevent unauthorized access to your data.
To turn on full disk encryption on macOS:
File Vault
Hardened Runtime is a tool that along with System Integrity Protection (SIP), protects the runtime integrity of your software by preventing certain classes of exploits, like code injection, dynamically linked library (DLL) hijacking, and process memory space tampering.
System Integrity Protection (SIP) is a security technology in OS X El Capitan and later that’s designed to help prevent potentially malicious software from modifying protected files and folders on your Mac.
Effaceable Storage is a dedicated area of NAND storage, used to store cryptographic keys, that can be addressed directly and wiped securely.
SepOS is the Secure Enclave firmware, based on an Apple-customized version of the L4 microkernel.
Pulse is a powerful logging system for Apple Platforms builtin in SwiftUI. It allows you to record and inspect logs and URLSession
network requests right from your iOS app. Shared logs and view them in Pulse Pro or use remote logging to see them in real-time. Logs are stored locally and never leave your devices.
Lynis is a security auditing tool for systems based on UNIX like Linux, macOS, BSD, and others. It performs an in-depth security scan and runs on the system itself. The primary goal is to test security defenses and provide tips for further system hardening. It will also scan for general system information, vulnerable software packages, and possible configuration issues.
Pareto Security is a MenuBar app to automatically audit your Mac for basic security hygiene.
GRR Rapid Response is an incident response framework focused on remote live forensics.
mac_apt is a DFIR (Digital Forensics and Incident Response) tool for macOS/iOS to process Mac computer full disk images (or live machines) and extract data/metadata useful for forensic investigation. It is a python based framework, which has plugins to process individual artifacts (such as Safari internet history, Network interfaces, Recently accessed files & volumes, etc…)
AdGuard DNS is a tool that let’s you control all web traffic on your devices, block ads, trackers, and malicious domains.
Quad9 is a free service that replaces your default ISP or enterprise Domain Name Server (DNS) configuration. When your computer performs any Internet transaction that uses the DNS (and most transactions do), Quad9 blocks lookups of malicious host names from an up-to-the-minute list of threats. This blocking action protects your computer, mobile device, or IoT systems against a wide range of threats such as malware, phishing, spyware, and botnets, and it can improve performance in addition to guaranteeing privacy.
MacOS Forensic Analysis is the process of building in-depth digital forensics knowledge of MacOS and iOS systems.
VPN (Virtual Private Network) is a service that encrypts your internet traffic on unsecured networks to protect your online identity, hide your IP address, and shield your online data from third parties.
Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network.
Firewall is a system that provides network security by filtering incoming and outgoing network traffic based on a set of user-defined rules. In general, the purpose of a firewall is to reduce or eliminate the occurrence of unwanted network communications while allowing all legitimate communication to flow freely.
Little Snitch is a host-based application firewall for macOS. It can be used to monitor applications, preventing or permitting them to connect to attached networks through advanced rules.
Multifactor Authentication (MFA) is when you sign into your online accounts - a process we call “authentication” - you’re proving to the service that you are who you say you are. Traditionally that’s been done with a username and a password.
YubiKey is a security device that makes two-factor authentication as simple as possible. Instead of a code being texted to you, or generated by an app on your phone, you simply press a button on your YubiKey. Each device has a unique code built on to it, which is used to generate codes that help confirm your identity. The YubiKey USB authenticator includes NFC and has multi-protocol support including FIDO2, FIDO U2F, Yubico OTP, OATH-TOTP, OATH-HOTP, Smart card (PIV), OpenPGP, and Challenge-Response capability to give you strong hardware-based authentication.
Authelia is an open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. It acts as a companion for reverse proxies by allowing, denying, or redirecting requests.
ZITADEL is an open-source authentication and authorization server providing two-factor authentication combining the best of Auth0 and Keycloak. Built for the serverless era. It includes Multi-tenancy with branding customization, secure login, self-service, OpenID Connect, OAuth2.x, SAML2, LDAP, Passwordless with FIDO2 (including Passkeys), OTP, U2F, and an unlimited audit trail is there for you, ready to use.
Microsoft Authenticator is an app helps you sign in to your accounts when you’re using two-step verification. Two-step verification helps you to use your accounts more securely because passwords can be forgotten, stolen, or compromised.
Google Authenticator is a software authenticator developed by Google that implements multi-factor authentication services using the Time-based one-time password and HMAC-based one-time password, for authenticating users of software applications.
Disk Image Creation - is a process of Data backup and recovery where creating an image ensures that the original data on the disk is preserved. With an exact copy, you can extract the data from the disk image anytime you need.
Evidence Collection - is a set of protocols that apply to both pre-collection and post-collection evidence. This process helps with Preserving & Collecting Evidence making sure the evidence is not destroyed or devalued as a source of information.
Incident Management - is the process used by development and IT Operations teams to respond to an unplanned event or service interruption and restore the service to its operational state.
Sandboxing - is a security practice in which you use an isolated environment, or a “sandbox,” for testing. Within the sandbox you run code, analyze the code in a safe, isolated environment without affecting the application, system or platform.
Reverse-engineering - is the process of dismantling a device, system, or piece of software to see how it works. It’s done primarily to analyze and gain knowledge about the way a product works but often is used to duplicate or enhance the product.
Game Mode is a tool enabled in macOS 14, it prioritizes CPU and GPU power for the game title you’re running. Optimizing your gaming experience across the board with smoother and more consistent frame rates. For example, Game Mode makes gaming on Mac more immersive by lowering audio latency with AirPods, and significantly reducing input latency with popular game controllers like those for Xbox and PlayStation by doubling the Bluetooth sampling rate.
Game Mode. Image Credit: Apple
Game Porting Toolkit is Apple’s new translation layer which combines Wine with Apple’s own D3DMetal which supports DirectX 9 through 12. Games that use anti-cheat(Easy Anti-Cheat and BattleEye) or aggressive DRM generally don’t work. Games that require AVX/AVX 2 CPUs also don’t work.
The Game Porting Toolkit builds a dxil to metallib converter and DirectX11/DirectX12 to Metal runtime translator. Non-graphics APIs are translated by Wine and do not use any tech from moltenVK, DXVK; or SPIRV-Cross. The Metal shader converter can be shipped by games and can be used in the game developer asset pipelines.
Metal shader converter is a tool that converts shader intermediate representations in LLVM IR bytecode into bytecode suitable to be loaded into Metal. It’s available as a library and a standalone executable. All the functionality exposed through the library interface is available via the standalone executable.
Game Porting Toolkit running Cyberpunk 2077 on a M1 Macbook. Image Credit: Isaac Marovitz
Working Games:
ALL WORKING GAMES LIST (Game Porting Toolkit = Windows DX12 Latest Games for Apple Silicon)
Cyberpunk 2077
Elden Ring
Diablo IV
Hogwarts Legacy
Crysis Remastered
Cuphead
Halo 3 (No Online due to Easy Anti-Cheat Compatibility)
Metal Gear Solid V: The Phantom Pain
Final Fantasy VII Remake Intergrade (~50 FPS on High settings at 1080p with M1 Pro.)
God of War (Works somewhat well on M1 Pro (16gb), wouldn’t recommend lesser hardware.)
Deep Rock Galactic
Sonic Omens
Sonic P-06
Scarlet Nexus
Dyson Sphere Program (some objects and main character weren’t visible before)
Derail Valley (good performance, no missing manuals, and in-game objects for train operation like on CrossOver)
Spider-Man (2018)
Spider-Man Miles Morales - requires Windows version fix.
Warframe - To get installer/launcher working add dwrite (disabled) to library overrides in winecfg.
QUBE 2
Deceive Inc. - works well if launched without EAC.
Risk of Rain 2 (does not require -disable-gpu-skinning
like Crossover 22.)
Tetris Effect: (Connected - Game window doesn’t like retina mode, works otherwise.)
Bloodstained: Ritual of the Night
Note: if you have ever installed Homebrew before, then it is advisable to remove arm64 Homebrew as this can interfere with this build process. Either use a Homebrew uninstall script or delete the folder /opt/homebrew/bin
.
Open Terminal (search in Spotlight on macOS).
Install Rosetta:
softwareupdate --install-rosetta
Enter an x86_64 shell to continue the following steps in a Rosetta environment. All subsequent commands should be run within this shell.
arch -x86_64 zsh
Install the x86_64 version of Homebrew if you don’t already have it.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Make sure the brew command is on your path:
which brew
If this command does not print /usr/local/bin/brew
, you should use this command:
export PATH=/usr/local/bin:${PATH}
Run this command to download Apple tap:
brew tap apple/apple http://github.com/apple/homebrew-apple
Install the game-porting-toolkit formula. This formula downloads and compiles several large software projects. How long this takes will depend on the speed of your computer. It can take over 1 hour to complete depending on the speed of your Mac.
brew -v install apple/apple/game-porting-toolkit
If during installation you see an error such as “Error: game-porting-toolkit: unknown or unsupported macOS version: :dunno”, your version of Homebrew doesn’t have macOS Sonoma support. Update to the latest version of Homebrew and try again.
brew update brew -v install apple/apple/game-porting-toolkit
A Wine prefix contains a virtual C: drive. You will install the toolkit and your game into this virtual C: drive. Run the following command to create a new Wine prefix named my-game-prefix in your home directory.
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg
If the “Wine configuration” window does not appear, and no new icon appears in the Dock, verify that you have correctly installed the x86_64 version of Homebrew as well as the game-porting-toolkit formula.
Preparing the toolkit
Make sure the Game Porting Toolkit dmg downloaded earlier is mounted at /Volumes/Game Porting Toolkit-1.0
. Use this script to copy the Game Porting Toolkit library directory into Wine’s library directory.
ditto /Volumes/Game\ Porting\ Toolkit-1.0/lib/ `brew --prefix game-porting-toolkit`/lib/
Put the 3 scripts from the Game Porting Toolkit DMG into here /usr/local/bin using this command:
cp /Volumes/Game\ Porting\ Toolkit*/gameportingtoolkit* /usr/local/bin
Go to Steam website and download the Windows version of Steam and place in your Downloads folder.
Install Steam
gameportingtoolkit ~/my-game-prefix ~/Downloads/SteamSetup.exe
Run Steam
gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)/Steam/steam.exe'
Log into Steam A common issue is that Steam will present with a blank black window.
Alternate way of launching Steam (after installing):
MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0/bin/wine64 'C:\Program Files (x86)/Steam/steam.exe'
If this continues then close the Terminal window and then re-open and try again, repeat until the login screen opens. Now you should be able to download and launch Windows games through Steam.
This is particularly useful because as it currently, the real Epic Games Launcher fails to install under the Game Porting Toolkit. Heroic supports Epic and GOG.com games.
Wine-Crossover-Wine-22.1.0
cd ~/Library/Application\ Support/heroic/tools/wine/Wine-crossover-wine-22.1.0
.cd Contents/MacOS
Remove the existing Wine:
rm wine
If using Game Porting Toolkit Wineprefix:
ln -s `/usr/local/bin/brew --prefix game-porting-toolkit`/bin/wine64 wine
If using Whisky:
ln -s /Applications/Whisky.app/Contents/Resources/Libraries/Wine/bin/wine64 wine
cd ../Resources
Remove the existing Wine:
rm -rfv wine
If using Game Porting Toolkit Wineprefix:
ln -s `/usr/local/bin/brew --prefix game-porting-toolkit` wine
If using Whisky:
ln -s /Applications/Whisky.app/Contents/Resources/Libraries/Wine wine
/Users/you/my-game-prefix
.WINEESYNC=1"
and "MTL_HUD_ENABLED=1"
Please download the Windows version of Battle.net.
Make a new Wineprefix for Battle.net - we will refer to this as battle-net from now:
WINEPREFIX=~/battle-net `brew --prefix game-porting-toolkit`/bin/wine64 winecfg
Run Battle.net launcher
gameportingtoolkit ~/battle-net ~/Downloads/Battle.net-Setup.exe
Please be aware that there is an issue launching Battle.net once installed, the only current way to re-login is to ‘install’ the launcher again.
Start individual game without the launcher using this command:
arch -x86_64 gameportingtoolkit-no-hud ~/battle-net 'C:\Program Files (x86)\Diablo IV\Diablo IV Launcher.exe'
Open your Wine prefix’s virtual C: drive in Finder (open ~/my-game-prefix/drive_c)
and copy your game into an appropriate subdirectory.
A. Standard launching
gameportingtoolkit ~/my-game-prefix 'C:\Program Files\MyGame\MyGame.exe'
This launches the given Windows game binary with a visible extended Metal Performance HUD and filters logging to output from the Game Porting Toolkit.
B. Launching without a HUD
gameportingtoolkit-no-hud ~/my-game-prefix 'C:\Program Files\MyGame\MyGame.exe'
C. Launching with Wine ESYNC disable
gameportingtoolkit-no-esync ~/my-game-prefix 'C:\Program Files\MyGame\MyGame.exe'
The provided bin/gameportingtoolkit*
scripts can be copied onto your path to facilitate different forms of logging and launching. You can run these scripts from any shell; you don’t need to switch to the Rosetta environment first.
Logging output will appear in the Terminal window in which you launch your game as well as the system log, which can be viewed with the Console app found in Applications ▸ Utilities. Log messages from the Game Porting Toolkit are prefixed with D3DM. By default the gameportingtoolkit* scripts will filter to just the D3DM-prefixed messages.
Troubleshooting • Link
Close the Terminal window and then reopen and retry the command, repeat several times.
Alternate way of launching Steam (after installing):
MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=<path to the Wine bottle you set up> /usr/local/Cellar/game-porting-toolkit/1.0/bin/wine64 'C:\Program Files (x86)/Steam/steam.exe'
If still not working then try using CrossOver and create a Steam bottle, then redirect this WINEPREFIX to that bottle:
WINEPREFIX="/Users/[username]/Library/Application Support/CrossOver/Bottles/Steam/"
Steam crashes straight after opening: Disconnect any external monitors.
Battle.net launcher won’t re-launch: Re-install the launcher to reopen, no other fix at the moment.
Game won’t run because it thinks the version of Windows is too old. Some games detect specific minimum versions of Windows and need to be updated. Use this script to update your wineprefix with build 19042 which should work for most games e.g. Spider-Man Remastered.
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuild /t REG_SZ /d 19042 /f
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d 19042 /f
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wineserver -k
steamwebhelper.exe crashes
This is caused by Steam being run through macOS Ventura or below, upgrade to macOS Sonoma.
Game won’t run and crashes with an invalid instruction
Invalid instruction crashes are often (but not always) caused when Rosetta 2 is unable to translate AVX/AVX2 instructions. You may be able to recompile a version of your game without AVX/AVX2 instructions in order to evaluate its potential on Apple Silicon with the Game Porting Toolkit when you hit this error. When porting your code natively to Apple Silicon, NEON instructions are a high-performance replacement for AVX/AVX2.
Game won’t run because its anti-cheat or DRM software is incompatible with Wine translation.
You may be able to rebuild a custom version of your game in your Windows development environment with anti-cheat or DRM disabled for your own evaluation purposes. When porting your code natively to Apple Silicon and macOS, contact your anti-cheat or DRM provider—most have native Apple Silicon solutions for your native build.
Game won’t run because it requires Mono, .NET, or the MSVCRT runtime.
The game porting toolkit’s evaluation environment does not pre-install these runtime support packages. If your game makes use of one of these packages, consider searching for and downloading appropriate installers (.exe or .msi) and installing them to your evaluation environment. Additional runtime installers can be run on your environment by just launching the installer and following its installation instructions:
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 <some-installer.exe>
And .MSI packages can be installed by launching the Windows uninstaller application and choosing to install a downloaded .msi package:
WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 uninstaller
Controller issues
Issues may be fixed by enrolling into the Steam beta.
Whisky is tool that provides a clean and easy to use graphical wrapper for Wine built in native SwiftUI. It can make and manage bottles, install and run Windows apps and games. Whisky is built on top of CrossOver 22.1.1 and Apple’s Game Porting Toolkit developed by Isaac Marovitz and help from Gcenx.
CrossOver for MacOS is a tool that let’s you run many popular Windows games on your MacOS system. It comes with an easy to use, single click interface, which makes installing your games simple and fast. CrossOver is built on the latest versions of Wine, based on contributions from both CodeWeavers and the open-source Wine community.
Recommended: Microsoft Visual C++ Redistributable ARM64 Version
Note: Xbox Game Pass Cloud Gaming can be accessed on macOS, iPadOS, and iOS through Apple’s Safari browser, though, for the best performance I recommend using Microsoft’s Edge browser. Also, you can use Parallels to run games on Windows 11 within macOS. Though, only 2D (Hollow Knight, Celeste, etc…) and lower graphics games run well natively with Parallels.
Xbox Game Pass is a video game subscription services from Microsoft starting at $9.99 and $14.99 for the Ultimate Pass.
May 23
May 25
May 30
June 1
June 6
June 8
June 13
June 22
June 27
June 29
July 3
July 5
Grand Theft Auto V (Xbox Series X|S, Xbox One, & Xbox Cloud Gaming)
Sword and Fairy: Together Forever (Xbox Series X|S, Xbox One, & Windows PC)
July 6
July 11
July 14
July 18
July 31
August 1
August 3
August 8
August 9
August 10
August 15
August 18
August 29
September 5
September 6 or September 1 with Starfield Premium Edition Upgrade
** September 19**
** September 20**
** September 23**
September 29
October 3
October 4
October 10
October 24
October 26
October 31
November 1
November 2
** November 6**
November 7
November 9
November 13
November 14
Games Leaving November 15, 2023
November 28
December 1
December 5
December 6 - Coming to Game Pass Core
December 7
December 8
December 13
December 14
Leaving December 15
The following games are leaving soon save up to 20% on these games to keep them in your library.
Early 2024
Make sure to use Parallels to run Windows 11 on macOS. Also, only 2D (Hollow Knight, Celeste, etc…) and lower graphics games run well natively with Parallels.
Note: Most games with a campaign mode will be playable offline, but games with network co-op or multiplayer features will not work while you’re offline. Before you go offline, connect to the Xbox network to sync your most recent game save to the cloud. While you play offline, your game save progress will continue to be saved locally, and it’ll sync the next time you sign in to Xbox. If you want to continue playing on a different device, you’ll need to go online and connect to the Xbox network to allow your local saved game to sync with the cloud again.
Note 2: PC Game Pass game licenses expire after 30 days when playing offline, and licenses for owned games expire after 14 days. To keep playing your game offline, go back online and launch the game. This renews the game’s license on your device and ensures you can go back to playing offline.
You can only have one device as your designated offline device. To set your device as your designated offline device:
Once you set this, any devices previously designated as offline will be toggled to Off, and you’ll no longer be able to play games offline on those devices.
Prepare your game or games
Once your device is set up, you’ll need to launch each game you want to play offline while signed in to the Xbox network. You only need to do this once per game, and you’ll need to do this even if you’ve already launched the game on your device.
Repeat this process for each game you want to play offline. Once completed, you can go offline at any time and launch those games whenever you want to play them, without needing to sign in online each time.
Stats is a tool that allows you to monitor your macOS system in the menubar.
iStat Menus is highly configurable tool, with full support for macOS light and dark menubar modes. It covers a huge range of stats, including a CPU monitor, GPU, memory, network usage, disk usage, disk activity, date & time, battery and more.
Logitech G Hub is software tool that lets you customize Logitech G gaming mice, keyboards, headsets, speakers, and other devices.
Corsair iCUE is a tool that enables gaming peripherals and personal computer components including computer case fans, RGB lighting, gaming headsets, gaming keyboards, gaming mouse, remap buttons and switches, RAM DIMMS and AIO CPU cooler together.
MacOS Ventura Settings for Game Controllers
Xbox Wireless Controller + USB-C® Cable
Xbox Controller
PlayStation 5 DualSense™ Wireless Controller
PS 5 DualSense™ Controller
ROG Raikiri Pro PC Controller is a Xbox-licensed PC controller that features a built-in OLED display, tri-mode connectivity, four rear buttons, selectable step triggers, an ESS DAC, plus adjustable joystick sensitivity and response curves.
Nintendo Switch Pro Controller
Nintendo Switch Pro Controller
8BitDo SN30 Pro+ Controller
8BitDo SN30 Pro+ Controller Button Mapping
Google Stadia Controller on ebay
Switch your Stadia Controller to Bluetooth mode to keep gaming wirelessly on your favorite devices and services after Stadia shuts down.
Note: Steam Controllers were discontinued on November 26, 2019, though, you can still buy them on ebay.
OBS (Open Broadcaster Software) is free and open source software for video recording and live streaming. Stream to Twitch, YouTube and many other providers or record your own videos with high quality H264 / AAC encoding. Starting with OBS Studio version 28 it features 10-bit and HDR video encode support for AV1 and HEVC, and native Apple Silicon support on macOS.
OBS Studio 29 new macOS features:
OBS Studio
Streamlink is a CLI utility which pipes video streams from various services into a video player, such as VLC.
Advanced Scene Switcher plugin; an automated scene switcher.
Audio Pan plugin; control stereo pan of audio source.
Browser plugin; CEF-based OBS Studio browser plugin.
Directory Watch Media plugin; filter you can add to media source to load the oldest or newest file in a directory.
Downstream Keyer plugin; add a Downstream Keyer dock.
Dynamic Delay plugin; filter for dynamic delaying a video source.
Freeze Filter plugin; freeze a source using a filter.
Gradient Source plugin; adding gradients as a Source.
GStreamer plugins; feed GStreamer launch pipelines into OBS Studio and use GStreamer encoder elements.
Move Transition plugin; move source to a new position during scene transition.
Multi Source Effect plugin; provides a custom effect to render multiple sources.
NDI plugin; Network A/V via NewTek’s NDI.
NvFBC plugin; screen capture via NVIDIA FBC API. Requires NvFBC patches for Nvidia drivers for consumer grade GPUs.
Soundboard plugin; adds a soundboard dock.
Source Copy plugin; adds copy and paste options to the tools menu.
Source Dock plugin; create a Dock for a source, which lets you see audio levels, change volume and control media.
Recursion Effect plugin; recursion effect filter.
Replay Source plugin; slow motion replay async sources from memory.
RGB Levels plugin; simple filter to adjust RGB levels.
RTSPServer plugin; encode and publish to a RTSP stream.
Scale to Sound plugin; adds a filter which makes a source scale based on the audio levels of any audio source you choose
Scene Collection Manager plugin; filter, backup and restore Scene Collections.
Scene Notes Dock plugin; create a Dock for showing and editing notes for the current active scene.
Source Record plugin; make sources available to record via a filter.
Source Switcher plugin; to switch between a list of sources.
Spectralizer plugin; audio visualization using fftw.
StreamFX plugin; collection modern effects filters and transitions.
Teleport plugin; open NDI-like replacement.
Text Pango plugin; Provides a text source rendered using Pango with multi-language support, emoji support, vertical rendering and RTL support.
Text PThread plugin; Rich text source plugin with many advanced features.
Time Warp Scan plugin; a time warp scan filter.
Transition Table plugin; customize scene transitions.
Virtual Cam Filter plugin; make sources available to the virtual camera via a filter
VNC Source plugin; VNC viewer that works as a source.
Websockets plugin; remote-control OBS Studio through WebSockets, compatible with StreamControl.
Discord is an application with modern voice & text chat app. It provides clear voice, multiple server and channel support, mobile apps, and more. It’s available on Linux, macOS, Windows, iOS, Android, and your web browser.
Twitch for MacOS/iOSis an application where thousands of communities come together for our favorite streamers join millions enjoying live games, music, sports, esports, podcasts, cooking shows, IRL streams, etc…
Apple Arcade is a game subscription service that gives up to six family members unlimited access to 100+ incredibly fun games, all with no ads and no in-app purchases.
PlayCover is a tool that let’s run iOS apps and games on Apple Silicon Macs(macOS 12.0 or newer) with mouse, keyboard and controller support.
Devices with the following chips are supported:
Installing Steam through CrossOver
Steam Link app is available free of charge, streaming your Steam PC games to phones, tablets, and TV.
Heroic Game Launcher is an Open Source Game Launcher for Linux, Windows and MacOS (for both Native and Windows Games using Crossover). It supports launching games from the Epic Games Store and the GOG.com Store.
Epic Games Store is a digital video game storefront for Microsoft Windows and macOS, operated by Epic Games.
Blizzard Battle.net is an internet-based online gaming, digital distribution, and digital rights management platform developed by Activision and Blizzard Entertainment. Battle.net is the launcher for World of Warcraft, Diablo III, StarCraft II, Hearthstone, Heroes of the Storm, Overwatch and Call of Duty.
Origin for MacOS is an online gaming, digital distribution and digital rights management (DRM) platform developed by Electronic Arts that allows users to purchase games on the internet for PC and mobile platforms, and download them with the Origin client (formerly EA Download Manager, EA Downloader and EA Link).
EA Play is a subscription-based video game service from Electronic Arts for the Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5 and Microsoft Windows platforms, offering access to selected games published by Electronic Arts along with additional incentives.
Ways to Play EA Play on macOS Apple Silicon:
Ubisoft Connect is a digital distribution, digital rights management, multiplayer and communications service created by Ubisoft to provide an experience similar to the achievements/trophies offered by various other game companies.
Ways to Play Ubisoft Connect on macOS Apple Silicon:
GOG Galaxy is an application that lets you combine multiple game libraries into one place and connect with your friends across all gaming platforms, consoles included.
Itch.io Store is an app that lets you effortlessly download and run games and software from itch.io. All of your downloads are kept in a single place and are automatically updated.
XIVONMAC is a modern, open-source Final Fantasy XIV client for macOS.
Xbox Cloud Gaming is Microsoft’s cloud-based Xbox game-streaming technology (currently in Beta). Play games like Forza Horizon 4, Halo 5: Guardians, Gears of War 4, Sea of Thieves, Cuphead, Red Dead Redemption 2, and 100+ other games on your mobile device or Chrome web browser. Xbox Cloud Gaming does require an Xbox Game Pass Ultimate subscription.
Geforce NOW is NVIDIA’s Cloud Gaming Service.
Amazon Luna is Amazon’s Cloud Gaming Service. Amazon Luna is Compatible/Supported on a variety of Devices and Browsers.
Shadow is a fully-featured, cloud-based, high-end computer. It is the only remote service that offers performance capable of competing with a local PC. Available on Windows, macOS, Linux, Android/AndroidTV, and iOS/tvOS.
Steam Remote Play Together is a steam service that let’s you share your Steam local multi-player games with friends over the internet, for free. Using Remote Play Together, one player owns and runs the game, then up to four players can join.
Steam Link app is available free of charge, streaming your Steam PC games to phones, tablets, and TV.
PlayStation Remote Play is a feature available on all PS4 and PS5 consoles that let’s you control your PlayStation® console remotely wherever you have a high-speed internet connection.
Chiaki is a Free and Open Source Software Client for PlayStation 4 and PlayStation 5 Remote Play for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms.
Parsec is a video game streaming platform, which offers a wide variety of games and genres to choose from and provides a high-quality and smooth gameplay. SParsec is developed in order to provide a high-quality smooth gameplay, same time to be free of all ads and in-game purchases.
Moonlight Game Streaming is a program that let you stream from your PC games over the Internet with no configuration required. Stream from almost any device, whether you’re in another room or miles away from your gaming rig. Sunshine is a Game stream host for Moonlight that is a self-hosted, low latency, cloud gaming solution with support for AMD, Intel, and NVIDIA GPUs.
Greenlight is an open-source client for xCloud and xHome streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. It runs on Linux, MacOS, Windows, and Steam Deck.
Greenlight
BlueStacks is a the Fastest & Lightest Android App Player for Windows and macOS.
Also checkout these subreddits for more great Game Emulators recommendations
EmulationStation Desktop Edition (ES-DE) is a frontend application for browsing and launching games from your multi-platform game collection. It’s available for Unix/Linux, macOS(M1 & Intel) and Windows.
RetroArch is a frontend for emulators, game engines and media players. It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all.
OpenEmu is an open-source project whose purpose is to bring macOS game emulation into the realm of first-class citizenship. The project leverages modern macOS technologies, such as Cocoa, Core Animation, and other third-party libraries.
Currently, OpenEmu can load the following game engines as plugins:
Pegasus is a cross platform, customizable graphical frontend for launching emulators and managing your game library (especially retro games) and launching them from one place. It’s focused on customizability, cross platform support (including embedded devices) and high performance.
Boxer is a DOSBox game emulator frontend that’s fit for your Mac.
Cartridge is a self-hosted game library made with Laravel + Vue.js.
Cartridge Features
Cartridge UI
Dolphin is an emulator for two recent Nintendo video game consoles: the GameCube and the Wii. It allows PC gamers to enjoy games for these two consoles in full HD (1080p) with several enhancements: compatibility with all PC controllers, turbo speed, networked multiplayer, and even more.
PrimeHack is a fork of Dolphin Emulator to bring modern Mouse and Keyboard controls, as well as Dual-Stick gamepad controls to the Metroid Prime Trilogy. It also offers many other features such as increased FoV and various new cheats. Versions of Metroid Prime that are currently supported.
Ryujinx is an open-source Nintendo Switch emulator created by gdkchan and written in C#. This emulator aims at providing excellent accuracy and performance, a user-friendly interface, and consistent builds.
yuzu is an experimental open-source emulator for the Nintendo Switch from the creators of Citra.
m64p is a Nintendo 64 Emulator. It uses mupen64plus-gui, a brand new mupen64plus frontend written in Qt5. It supports all of the things you’d expect from a frontend (savestate management, pausing, screenshots).
Citra is an open-source emulator for the Nintendo 3DS capable of playing many of your favorite games.
DeSmuME is a Nintendo DS emulator.
melonDS is a tool that aims at providing fast and accurate Nintendo DS emulation. While it is still a work in progress, it has a pretty solid set of features.
Features:
* Nearly complete core (CPU, video, audio, etc...)
* OpenGL renderer, 3D upscaling
* RTC, microphone, lid close/open
* Joystick support
* Savestates
* Various display position/sizing/rotations modes
* Work-in-progress Wi-Fi emulation for online connectivity and local multiplayer
* Experimental emulation of the Nintendo DSi
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES) emulator.
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
mGBA is a new emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack.
Boxer is a DOSBox game emulator frontend that’s fit for your Mac.
DOSBox is an open-source DOS emulator which primarily focuses on running DOS Games.
DOSBox Staging is a full x86 CPU emulator (independent of host architecture), capable of running DOS programs that require real or protected mode.
Stella is a multi-platform Atari 2600 VCS emulator released under the GNU General Public License (GPL). Stella is available on Windows MacOS, Linux, and FreeBSD.
Hatari is an Atari ST/STE/TT/Falcon emulator for Linux, BSD, MacOS, Windows and other systems which are supported by the SDL library. The Atari ST was a 16/32 bit computer system which was first released by Atari in 1985.
Flycast is a multi-platform Sega Dreamcast, Naomi and Atomiswave emulator derived from reicast.
Redream is a Dreamcast emulator, enabling you to play your favorite Dreamcast games in high-definition(1080p or 4k).
PPSSPP is a PSP emulator that can run games in full HD resolution. It can even upscale textures that would otherwise be too blurry as they were made for the small screen of the original PSP.
DuckStation is an simulator/emulator of the Sony PlayStation 1 console, focusing on playability, speed, and long-term maintainability.
Avocado is a Modern PlayStation 1 emulator.
AetherSX2 is a free (no ads) emulator of the PlayStation 2 (PS2) console for ARM-based devices. This enables you to play games which you have dumped from disc on your smartphone.
PCSX2 is a Playstation 2 ‘emulator’, a free program that tries to replicate the Playstation 2 console to enable you to play PS2 games on your PC.
Play! is a PlayStation2 emulator for Windows, macOS, UNIX, Android, iOS and web browser platforms.
RPCS3 is an experimental open-source Sony PlayStation 3 emulator and debugger written in C++ for Windows and Linux. RPCS3 started development in May of 2011 by its founders DH and Hykem. The emulator is currently capable of running over 1800 commercial titles powered by Vulkan and OpenGL.
xemu is an original Xbox emulator.
Xenia is an Xbox 360 Emulator.
MAME is a Arcade Machine Emulator.
Geekbench 6 is a cross-platform benchmark that measures your system’s performance with the press of a button.
GFXBench 5.0 is a high-end graphics benchmark that measures mobile and desktop performance with next-gen graphics features across all platforms. As a true cross-API benchmark, GFXBench supports all the industry-standard and vendor-specific APIs including OpenGL, OpenGL ES, Vulkan, Metal, DirectX/Direct3D and DX12.
PugetBench Benchmarks is an application that has a number of benchmarks that are designed to test many popular professional applications using real-world projects and workflows.
UNIGINE Superposition is an extreme performance and stability test for PC hardware: video card, power supply, cooling system.
asitop is a Performance monitoring CLI tool for Apple Silicon.
InFO is an innovative wafer level system integration technology platform, featuring high density RDL (Re-Distribution Layer) and TIV (Through InFO Via) for high-density interconnect and performance for various applications, such as mobile, and high performance computing. The InFO platform offers various package schemes in 2D and 3D that are optimized for specific applications.
InFO_PoP is the industry’s 1st 3D wafer level fan-out package, features high density RDL and TIV to integrate mobile AP w/ DRAM package stacking for mobile application. Comparing to FC_PoP, InFO_PoP has a thinner profile and better electrical and thermal performances because of no organic substrate and C4 bump.
InFO_PoP
InFO_oS is a packaging process that leverages InFO technology and features higher density 2/2µm RDL line width/space to integrate multiple advanced logic chiplets for 5G networking application. It enables hybrid pad pitches on SoC with minimum 40µm I/O pitch, minimum 130µm C4 Cu bump pitch and > 2X reticle size InFO on >65 x 65mm substrates.
InFO_oS
CoWoS® is a platform that provides best-in-breed performance and highest integration density for high performance computing applications. This wafer level system integration platform offers wide range of interposer sizes, number of HBM cubes, and package sizes. It can enable larger than 2X-reticle size (or ~1,700mm2) interposer integrating leading SoC chips with more than four HBM2/HBM2E cubes.
TSMC CoWoS®-S Architecture
CoWoS-R is a member of CoWoS advanced packaging family leveraging InFO technology to utilize RDL interposer and to serve the interconnect between chiplets, especially in HBM(high bandwidth memory) and SoC heterogeneous integration. RDL interposer is comprised of polymer and copper traces, and it is relatively mechanically flexible. Such flexibility enhances the C4 joint integrity, and allows the new package can scale up its size to meet more complex functional demands.
TSMC CoWoS®-R Architecture
CoWoS®-L is one of the last for chip packages in the CoWoS® platform, combining the merits of CoWoS®-S and InFO technologies to provide the most flexible integration using interposer with LSI (Local Silicon Interconnect) chip for die-to-die interconnect and RDL layers for power and signal delivery. The offering starts from 1.5X-reticle interposer size with 1x SoC + 4x HBM cubes and will move forward to expand the envelope to larger sizes for integrating more chips.
The key features of CoWoS®-L service include:
LSI chips for high routing density die-to-die interconnect through multiple layers of sub-micron Cu lines. The LSI chips can feature variety of connection architectures (SoC to SoC, SoC to chiplet, SoC to HBM… etc) within each product, and can also be used repeatedly for multiple products. The corresponding metal types, layer counts, and pitches align with the offering from CoWoS®-S.
Molding-based interposer with wide pitch of RDL layers on both front-side and back-side and TIV (Through Interposer Via) for signal and power delivery provides low loss of high frequency signal in high-speed transmission.
Capability of integrating additional elements, stand-alone IPD (Integrated Passive Device), right underneath the SoC die to support its signal communication with better PI/SI.
TSMC CoWoS®-L Architecture
Developer Resources:
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode 14 is built as an Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon. It includes a unified macOS SDK that features all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
Developing with SwiftUI in Xcode 14
Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers. It accelerates the development and delivery of high-quality apps by bringing together cloud-based tools that help you build apps, run automated tests in parallel, deliver apps to testers, and view and manage user feedback.
Xcode Cloud. Source: Apple
SwiftUI is a user interface toolkit that provides views, controls, and layout structures for declaring your app’s user interface. The SwiftUI framework provides event handlers for delivering taps, gestures, and other types of input to your application.
UIKit is a framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app.
AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.
ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple. The latest version ARKit 3.5 takes advantage of the new LiDAR Scanner and depth sensing system on iPad Pro(2020) to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion.
RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.
Mac Catalyst is a set of Apple APIs that developers can use to rapidly port their iOS apps to Apple Silicon M1 Chip and take full advantage of the new capabilities on the new Apple hardware.
Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.
TestFlight is a tool that makes it easy to invite users to test your apps and App Clips and collect valuable feedback before releasing your apps on the App Store. It allows you to invite up to 10,000 testers using just their email address or by sharing a public link.
Core ML is an Apple framework for integrating machine learning models into apps running on Apple devices (including iOS, watchOS, macOS, and tvOS). Core ML introduces a public file format (.mlmodel) for a broad set of ML methods including deep neural networks (both convolutional and recurrent), tree ensembles with boosting, and generalized linear models. Models in this format can be directly integrated into apps through Xcode.
Integrating a Core ML Model into your App
Apple Developer Forums for Core ML
Top Core ML Courses Online | Udemy
Top Core ML Courses Online | Coursera
IBM Watson Services for Core ML | IBM
Stable Diffusion with Core ML on Apple Silicon
Generate Core ML assets using IBM Maximo Visual Inspection | IBM
Core ML Tools is a tool to convert machine learning models from third-party libraries to the Core ML format. This Python package contains the supporting tools for converting models from training libraries such as the following:
Non-neural network frameworks:
Create ML is a tool that provides new ways of training machine learning models on your Mac. It takes the complexity out of model training while producing powerful Core ML models.
Apple FaceLit is a Neural 3D Relightable Faces.
TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.
Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.It was developed with a focus on enabling fast experimentation. It is capable of running on top of TensorFlow, Microsoft Cognitive Toolkit, R, Theano, or PlaidML.
PyTorch is a library for deep learning on irregular input data such as graphs, point clouds, and manifolds. Primarily developed by Facebook’s AI Research lab.
XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and portable. It implements machine learning algorithms under the Gradient Boosting framework. XGBoost provides a parallel tree boosting (also known as GBDT, GBM) that solve many data science problems in a fast and accurate way. It supports distributed training on multiple machines, including AWS, GCE, Azure, and Yarn clusters. Also, it can be integrated with Flink, Spark and other cloud dataflow systems.
LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM). It supports multi-class classification.
Scikit-Learn is a simple and efficient tool for data mining and data analysis. It is built on NumPy,SciPy, and mathplotlib.
Apple Vision is a framework that performs face and face landmark detection, text detection, barcode recognition, image registration, and general feature tracking. Vision also allows the use of custom Core ML models for tasks like classification or object detection.
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode 12 is built as an Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon. It includes a unified macOS SDK that features all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
SwiftUI is a user interface toolkit that provides views, controls, and layout structures for declaring your app’s user interface. The SwiftUI framework provides event handlers for delivering taps, gestures, and other types of input to your application.
UIKit is a framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app.
AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.
ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple.
RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.
Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.
CocoaPods is a dependency manager for Swift and Objective-C used in Xcode projects by specifying the dependencies for your project in a simple text file. CocoaPods then recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project.
AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages.
Metal is a low-level API that provides a platform-optimized, low-overhead API for developing the latest 3D pro applications and amazing games using a rich shading language with tighter integration between graphics and compute programs. To help you do more while managing ever more complex shader code, Metal adds an unparalleled suite of advanced GPU debugging tools to help you realize the full potential of your graphics code.
Metal 3 is Apple’s newest graphics API that introduces advanced features and compiler tools to load resources faster, compile shader binaries at build time, process complex geometry with mesh shaders, render high-resolution graphics in less time, train machine learning networks faster, and more.
MTLDevice is the Metal interface to a GPU that you use to draw graphics or do parallel computation.
Metal-cpp is a low-overhead C++ interface for Metal that helps you add Metal functionality to graphics apps, games, and game engines that are written in C++. Sample Code
Metal plugin for TensorFlow is a TensorFlow-Metal PluggableDevice that adds improvements to machine learning training with new operations accelerated on GPU, custom operations, and distributed training support.
MetalFX is a new API that provides platform optimized graphics effects for Metal applications. With MetalFX Upscaling, your application can now render frames at a lower resolution, reducing rendering time, without compromising rendering quality. We’ll also show you how and when to use its two effects: spatial upscaling, which delivers substantial performance gains, and temporal AA and upscaling, which delivers the highest quality rendering.
MetalFX Rendering. Credit: Apple
MetalPetal is a GPU accelerated image and video processing framework based on Metal designed to provide real-time processing for still image and video with easy to use programming interfaces.
Apple Foundation Framework is a framework provides a base layer of functionality for apps and frameworks, including data storage and persistence, text processing, date and time calculations, sorting and filtering, and networking. The classes, protocols, and data types defined by Foundation are used throughout the macOS, iOS, watchOS, and tvOS SDKs.
Apple Core Animation Framework is a graphics rendering and animation infrastructure that provides high frame rates and smooth animations without burdening the CPU and slowing down your app.
Apple Core Graphics Frameworkis a framework based on the Quartz advanced drawing engine. It provides low-level, lightweight 2D rendering with unmatched output fidelity.
Paravirtualized Graphics Framework is a framework that implements hardware-accelerated graphics for macOS running in a virtual machine, hereafter known as the guest. The macOS operating system provides a graphics driver that runs inside the guest, communicating with the framework in the host operating system to take advantage of Metal-accelerated graphics.
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode 12 is built as an Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon. It includes a unified macOS SDK that features all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
SwiftUI is a user interface toolkit that provides views, controls, and layout structures for declaring your app’s user interface. The SwiftUI framework provides event handlers for delivering taps, gestures, and other types of input to your application.
UIKit is a framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app.
AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.
ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple. The latest version ARKit 3.5 takes advantage of the new LiDAR Scanner and depth sensing system on iPad Pro(2020) to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion.
RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.
Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.
CocoaPods is a dependency manager for Swift and Objective-C used in Xcode projects by specifying the dependencies for your project in a simple text file. CocoaPods then recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project.
AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages.
MoltenVK is an implementation of Vulkan running on iOS and macOS using Apple’s Metal graphics framework.
Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
VS Code
Visual Studio Code Marketplace is a marketplace for all extensions for Visual Studio, Azure DevOps Services, Azure DevOps Server and Visual Studio Code.
VS Code Marketplace
Code Server is a tool that allows you to run VS Code on any machine anywhere and access it in the browser.
GitHub Codespaces is an integrated development environment(IDE) on GitHub. That allows developers to develop entirely in the cloud using Visual Studio and Visual Studio Code. Also, from any repo or pull request on GitHub you can simply press the period (.) key on your keyboard to bring up the browser-based VS Code environment with the source code file ready for editing. That dot (.) press to bring up the web-based VS Code editor takes you to https://github.dev/.
Language Server Protocol (LSP) is a tool that defines the protocol used between an editor or IDE and a language server that provides language features like auto complete, go to definition, find all references.
Visual Studio Live Share is a service/ extension that enables you to collaboratively edit and debug with others in real time, regardless of the programming languages you’re using or app types you’re building. You can instantly and securely share your current project, start a joint debugging session, share terminal instances, forward localhost web apps, have voice calls, and more.
GistPad is a Visual Studio Code extension that allows you to edit GitHub Gists and repositories from the comfort of your favorite editor. You can open, create, delete, fork and star gists and repositories, and then seamlessly begin editing files as if they were local, without ever cloning, pushing or pulling anything.
Live Server is an extension for Visual Studio Code that launches a development local Server with live reload feature for static & dynamic pages.
GitHub Pull Requests and Issues is an extension for Visual Studio Code that allows you to review and manage GitHub pull requests and issues in Visual Studio Code.
Terminal is an extension for Visual Studio Code that lets you run terminal command directly in the Editor.
Profile Switcher is an extension for Visual Studio Code that allows you to switch between different profiles you have created.
Material Icon Theme is an extension for Visual Studio Code that gets the Material Design icons into your VS Code.
One Dark Pro is an extension for Visual Studio Code that adds Atom’s iconic One Dark theme, which is one of the most installed themes for VS Code.
VSCode Icons is an extension for Visual Studio Code that brings icons to your Visual Studio Code setup.
GitLens is an extension for Visual Studio Code that helps you visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.
Import Cost is an extension for Visual Studio Code that will display inline in the editor the size of the imported/required package. The extension utilizes webpack with babili-webpack-plugin in order to detect the imported size.
Markdown All in One is an extension for Visual Studio Code that gives you everything you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more).
Auto Rename Tag is an extension for Visual Studio Code that automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text.
Auto-Close Tag is an extension for Visual Studio Code that automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text does.
Settings Sync is an extension for Visual Studio Code that synchronizes Settings, Snippets, Themes, File Icons, Launch, Keybindings, Workspaces and Extensions Across Multiple Machines Using GitHub Gist.
Bookmarks is an extension for Visual Studio Code that lets you mark lines of code and jump to them.
Better Comments is an extension for Visual Studio Code that improves your code commenting by annotating with alert, informational, TODOs, and more.
Code Spell Checker is an extension for Visual Studio Code that works as a spelling checker for source code.
CSS Peak is an extension for Visual Studio Code that allows peeking to css ID and class strings as definitions from html files to respective CSS. It also allows peek and goto definition.
Tailwind CSS IntelliSense is an extension for Visual Studio Code that enhances the Tailwind development experience by providing Visual Studio Code users with advanced features such as autocomplete, syntax highlighting, and linting.
Prettier is an extension for Visual Studio Code that is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
NPM Intellisense is an extension for Visual Studio Code that autocompletes npm modules in import statements.
Path Intellisense is an extension for Visual Studio Code that autocompletes filenames.
Relative Path is an extension for Visual Studio Code that gets the relative url paths from files in the current workspace.
Path Autocomplete is an extension for Visual Studio Code that provides path completion for visual studio code.
Discord Presence is an extension for Visual Studio Code that updates your discord status with a rich presence.
Code Runner is an extension for Visual Studio Code that runs code snippets or code files for multiple languages: C/C++, Java, JavaScript, PHP, Python, Perl, Ruby, Go, Lua, Groovy, PowerShell, BASH/SH, C#, F#, .NET Core, TypeScript, CoffeeScript, Scala, Swift, Julia, OCaml, R, Elixir, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, Kotlin, Dart, Haskell, Nim, D, CUDA, and custom command.
Kite is an extension for Visual Studio Code that provides an AI-powered programming assistant that helps you write code faster inside Visual Studio Code. Kite works for all major programming languages: Python, Java, Go, PHP, C/C#/C++, Javascript, HTML/CSS, Typescript, React, Ruby, Scala, Kotlin, Bash, Vue and React.
Tabnine is an extension for Visual Studio Code that provides an AI code completion tool trusted by millions of developers to code faster with fewer errors. Whether you are a new dev or a seasoned pro, working solo or part of a team, Tabnine will help push your productivity to new heights while cutting your QA time in your favorite IDE.
Recommend Hardware Requirements:
OS: MacOS 12 or later
CPU/GPU: M1 Pro (10-core CPU, 16-core GPU)
RAM: 32 GB
Storage: 1 TB
Unreal Engine 5 is a game engine developed by Epic Games with the world’s most open and advanced real-time 3D creation tool. Continuously evolving to serve not only its original purpose as a state-of-the-art game engine, today it gives creators across industries the freedom and control to deliver cutting-edge content, interactive experiences, and immersive virtual worlds.
Unreal Engine 5 with Big City Sample Project
Unreal Engine Twinmotion. Source: Unreal Engine
Unreal Engine 5 Project browser
Unreal Engine 5 Vehicle Project Demo
Unreal Engine Marketplace
Blueprint Visual Scripting is a complete gameplay scripting system in Unreal Engine based on the concept of using a node-based interface to create gameplay elements from within Unreal Editor. As with many common scripting languages, it is used to define object-oriented (OO) classes or objects in the engine.
Blueprint Visual Scripting UI
Datasmith is a collection of tools and plugins that bring entire pre-constructed scenes and complex assets created in a variety of industry-standard design applications into Unreal Engine.
Chaos Physics is a Beta feature that is the light-weight physics simulation solution used in Fortnite, and it includes the following major features.
Niagara VFX System is one of two tools you can use to create and adjust visual effects (VFX) inside Unreal Engine 5 (UE5). Before Niagara, the primary way to create and edit visual effects in UE4 was to use Cascade. It has many of the same of particle manipulation methods that Cascade offers, the way you interact and build visual effects with Niagara is vastly different.
MetaHuman Creator is a free cloud-based app that empowers anyone to create photorealistic digital humans, complete with hair and clothing, in minutes. MetaHumans come fully rigged and ready to animate in your Unreal Engine projects.
Twinmotion is a real-time 3D immersion software that produces high-quality images, panoramas and standard or 360° VR videos in seconds. Developed for architecture, construction, urban planning and landscaping professionals.
Bridgew by Quixel is a gateway to create a world of 3D content right inside the Unreal Engine. it includes Megascans—the world’s largest library of AAA, cinema-quality assets based on real-world scan data.
Lumen is an Unreal Engine 5 feature that uses multiple ray tracing methods to solve Global Illumination and Reflections. Screen traces are done first, followed by a more reliable method. It uses Software Ray Tracing through Signed Distance Fields by default, but can achieve higher quality on supporting video cards when Hardware Ray Tracing is enabled. Note: Lumen works on Apple Silicon with Unreal 5.2 release.
Nanite is Unreal Engine 5’s new virtualized geometry system which uses a new internal mesh format and rendering technology to render pixel scale detail and high object counts. It intelligently does work on only the detail that can be perceived and no more.
Procedural Content Generation Framework (PCG) is a toolset for creating your own procedural content inside Unreal Engine. It provides artists and designers the ability to build fast, iterative tools and content of any complexity ranging from asset utilities, such as buildings or biome generation, up to entire worlds.
Unreal Engine’s VCam system is a Cine Camera in Unreal Engine that uses a modular component system to manipulate camera data and output the final results to a variety of external output devices. In addition, the Virtual Camera system provides its functionality while in the editor and during Play In Editor (PIE) or Standalone Game mode.
nDisplay is a tool in Unreal Engine that describes how multiple computers work together in an nDisplay rendering network.
Unreal Engine Marketplace is Unreal Engine’s Store that has a library Of Textures, Models, Animations, Tutorials, and More for creating amazing 3D projects and games.
UnrealBuildTool (UBT) is a tool that manages the process of building UE4 source code across a variety of build configurations.
UnrealHeaderTool (UHT) is a custom parsing and code-generation tool supporting the UObject system.
AutomationTool is a generic system used to automate processes, including testing and building games.
Proxy Geometry Tool is a tool-set that was developed as a way to increase your Unreal Engine 4 (UE4) project’s performance while keeping the visual quality of your project uneffected.
Replay System is a tool which can record gameplay for later viewing. This feature is available in all games, from live, multiplayer games played on dedicated servers, to single-player games, and even including Play-In-Editor sessions. At a high level, the Replay system works by using a DemoNetDriver to read data drawn from the built-in replication system, similar to how a NetDriver operates in a live, networked gameplay environment.
Note: you will need to create an Epic Games account to download Unreal Engine.
Unreal Online Learning is a free learning platform that offers hands-on video courses and guided learning paths.
Recommend Hardware Requirements:
OS: MacOS 12 or later
CPU/GPU: M1 Pro (10-core CPU, 16-core GPU)
RAM: 32 GB
Storage: 1 TB
Unity is a cross-platform game development platform. Unity can be used to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers. Checkout the Unity Manual to get started on your Unity projects.
Unity Terrain project. Source: Unity
Unity Hub Installs
Unity Asset Store
Unity Hub is a tool that helps manage multiple installations of the Unity Editor, create new projects, and access your work.
Unity Asset Storeis Unity’s Store that has a library Of Textures, Models, Animations, Tutorials, and More for creating amazing 3D projects and games.
Unity Plus is a version of Unity for small businesses and serious hobbyists get more functionality and training resources to power up their projects.
Unity Pro is a version of Unity to create and operate amazing applications and immersive experiences with a complete solution for professionals across industries.
Unity Enterprise is a version of Unity for large teams creating at scale, Unity Enterprise delivers comprehensive technology, resources, and support that fuel innovation, reduce risk, and power your success.
Unity XR is a plug-in framework that enables XR providers to integrate with the Unity engine and make full use of its features.
Unity MARS is a tool that helps you create augmented reality (AR) apps with better workflows and purpose built authoring tools.
Unity Build Server is a tool that offloads your Unity project builds to network hardware, empowering your creative team to iterate more, produce higher quality products, and ship on time.
Unity Teams is a tool that helps you and your team create together, faster. It makes it simple to save, share and sync your Unity projects with anyone.
Unity Automated QA is a tool that shortens the development feedback loop with on-demand tests that anyone on your team can create and run without writing code.
Unity Simulation Pro is a tool that unlocks the true power of scalable simulations through a simulation-optimized version of the Unity runtime.
Unity Forma is a tool that brings the power of real-time 3D to your marketing. It turns 3D product data into interactive 3D configurators, stunning images and more.
Unity Reflect is a tool that helps create an experience immersive and collaborative real-time 3D environments, including in AR and VR, for better decision-making across your entire project lifecycle.
Unity Reflect Develop is a tool that builds your own custom applications to address any problem across the entire building and infrastructure lifecycle for internal or commercial deployment.
Unity ArtEngine is Unity’s material authoring tool. Harnessing the power of assisted creation, the tool helps creators accelerate production pipelines.
Unity Machine Learning Agents is a tol that helps train and embed intelligent agents by leveraging state-of-the-art deep learning technology.
Unity Essential Success is a tool that is your dedicated Support Coordinator and experienced Unity engineers are ready to help.
Bolt Visual scripting is a tool in Unity empowers creators to develop gameplay mechanics or interaction logic with a visual, graph-based system, instead of writing traditional lines of code.
VisualLive is a tool for construction professionals can visualize designs and collaborate in real-time by overlaying large BIM and CAD files onto jobsites using AR.
Professional Services: Optimization Accelerator is atool that boosts your project and your productivity in a four-day sprint with hands-on guidance from a Unity engineer. It will help you analyze performance problems, test solutions, and implement improvements.
Odin Inspector Enterprise is a tool that optimizes your project workflows and save thousands of development hours.
Multiplay is a resilient, multicloud hybrid server hosting and matchmaking platform without having to build and maintain your own infrastructure. Proven at scale in some of the world’s biggest games.
Vivox is a voice and text comms tool that boosts player engagement, retention rates and create immersive multiplayer experiences by leveraging an easy-to-implement, feature-rich voice and text chat service.
Relayᴮᴱᵀᴬ is a tool that provides a great multiplayer gaming experiences with Unity’s Relay service that’s now in open beta.
Lobbyᴮᴱᵀᴬ is a tool that connects your players for great multiplayer gaming experiences with Lobby that’s now in Open Beta.
Cloud Codeᴮᴱᵀᴬ is a tool that runs your game logic in the cloud as serverless functions and interact with other backend services.
Cloud Saveᴮᴱᵀᴬ is a tool that builds better player experiences by storing game data to the cloud.
Furioos is a tool that streams fully interactive 3D experiences from Unity, other real-time 3D platforms, and Windows applications with peak visual quality in any web browser.
OctaneRender® for Unity is a tool that lets you harness physically accurate rendering directly in Unity and compose gorgeous, cinematic-quality scenes with OctaneRender materials and lighting.
Pacelab WEAVR is a tool that provides a complete XR platform that enables any company, in any industry, to develop and manage enterprise-scale immersive training.
Interact is a tool that creates advanced real-time, human-centric simulations on any VR configuration for training, visualization, and safety.
Prespective is a tool that helps you design and simulate your machine, factory, or system in Unity real-time 3D. Create common ground among stakeholders and speed up decision processes with improved visualization tools.
Pixyz is a tool that lets you can quickly import, prep, and optimize your large CAD, mesh and point cloud models for real-time visualizations in Unity.
Plastic SCM Cloud Edition is a tool that makes Collaboration more efficient with a performant, easy-to-use version control system (VCS) made for programmers, artists and designers.
Backtrace is a game crash management platform that delivers uninterrupted game experiences by automating your response to errors.
SpeedTree® is a group of vegetation programming and modeling software products developed and sold by Interactive Data Visualization, Inc. that generates virtual foliage for animations, architecture and in real time for video games and demanding real time simulations. Unity Technologies acquired SpeedTree in July 2021.
ParSec is a the ultimate remote desktop, powerful enough for teams of developers, designers, architects, and engineers to get the job done and work together from anywhere. Unity Technologies acquired Parsec in August 2021.
SyncSketch is a collaboration software for visual artists that allows a team to view, review, and provide feedback on each other’s work. It includes support for both 2D and 3D assets as well as video. As of December 2021 SyncSketch has been acquired by Unity Technologies.
Weta Digital is a digital visual effects company created by Peter Jackson. It produced the digital special effects for Heavenly Creatures and the Lord of the Rings. Unity Technologies acquired Weta Digital in November 2021.
Unity Knowledge Base is a library of articles that helps you troubleshoot common problems, whether it’s creating an account, importing assets, or baking a scene.
Game Programming with Unity and C#: A Complete Beginner’s Guide 1st ed. Edition by Casey Hardman
C# Game Programming Cookbook for Unity 3D 2nd Edition by Jeff W. Murray
Unity in Action, Third Edition: Multiplatform game development in C# 3rd Edition by Joe Hocking
Recommended Hardware Requirements:
OS: MacOS 12 or later
CPU/GPU: M1 Pro (10-core CPU, 16-core GPU)
RAM: 32 GB
Storage: 1 TB
Blender is a professional, free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, interactive 3D applications and video games.
Blender comes packed with import/export support for many different programs.
Including:
Image(JPEG, JPEG2000, PNG, TARGA, OpenEXR, DPX, Cineon, Radiance HDR, SGI Iris, TIFF)
Video(AVI, MPEG and Quicktime (on MacOS)).
3D(Alembic, 3D Studio (3DS), COLLADA (DAE), Filmbox (FBX), Autodesk (DXF), Wavefront (OBJ), DirectX (x), Lightwave (LWO), Motion Capture (BVH), SVG, Stanford PLY, STL, VRML, VRML97, X3D).
Eevee is Blender’s realtime render engine focused on speed and interactivity while achieving the goal of rendering PBR materials. Eevee can be used interactively in the 3D Viewport but also produce high quality final renders. Eevee materials are created using the same shader nodes as Cycles, making it easy to render existing scenes. For Cycles users, this makes Eevee work great for previewing materials in realtime.
Eevee final render – “Temple”. Source: Dominik Graf
Cycles is Blender’s ray-trace based production render engine.
Blender’s Cycles Render Engine. Source: Blender
Blender VFX(Visual Effects). Source: Blender
FreeStyle is an edge- and line-based non-photorealistic (NPR) rendering engine. It relies on mesh data and z-depth information to draw lines on selected edge types. Various line styles can be added to produce artistic (“hand drawn”, “painted”, etc.) or technical (hard line) looks.
Modifiers are automatic operations that affect an object in a non-destructive way. With modifiers, you can perform many effects automatically that would otherwise be too tedious to update manually (such as subdivision surfaces) and without affecting the base geometry of your object.
UV Unwrapping is a tool that let’s you easily unwrap your mesh right inside Blender, and use image textures or paint your own directly onto the model.
UV Sculpt is a “mode” in Blender that allows you to grab, pinch and smooth UVs, just like Sculpt Mode.
Dedicated Workspace is a feature of sculpting organic subjects using the built-in sculpting feature set of Blender.
Brushes is a feature in Blender that comes with built-in brushes such as Crease, Clay Strips, Pinch, Grab, Smooth, Mask and many more.
Dynamic topology( dyntopo) is a dynamic tessellation sculpting method, which adds and removes details on the fly, whereas regular sculpting only affects the shape of a mesh.
Masking is a feature used while sculpting, areas might be hidden behind parts of the mesh or they might be too close to other parts. To work through these, it is useful to isolate parts of a mesh to sculpt on. This can be done by either completely hiding parts of the mesh or by masking areas that can not be sculpted on.
Grease Pencil is a particular type of Blender object that allow you to draw in the 3D space. It can be use to make traditional 2D animation, cut-out animation, motion graphics or use it as storyboard tool among other things.
Constraints are a way to control an object’s properties (e.g. its location, rotation, scale), using either plain static values (like the “limit” ones), or another object, called “target” (like e.g. the “copy” ones).
Shape keys are used to deform objects into new shapes for animation. In other terminology, shape keys may be called “morph targets” or “blend shapes”. The most popular use cases for shape keys are in character facial animation and in tweaking and refining a skeletal rig. They are particularly useful for modeling organic soft parts and muscles where there is a need for more control over the resulting shape than what can be achieved with combination of rotation and scale.
Motion Paths is a tool allows you to visualize the motion of points as paths over a series of frames. These points can be object origins and bone joints.
Simulations is a tool that allows you to create amazing Simulations such as a crumbling building, rain, fire, smoke, fluid, cloth or full on destruction.
Blender Video Editor is a video editor that comes with a built-in video sequence editor allows you to perform basic actions like video cuts and splicing, as well as more complex tasks like video masking or color grading.
Blender Compositing is a feature that comes with an impressive library of nodes for creating camera fx, color grading, vignettes and much more
Render-layer support. Along with the ability to render to multiLayer OpenEXR files.
Blender Motion Tracking is a feature that provides production ready camera and object tracking, allowing you to import raw footage, track it, mask areas and reconstruct the camera movements live in your 3d scene.
Blender Pro Tips: How Professionals Create 3D Models by Arijan Belec
The Complete Guide to Blender Graphics: Computer Modeling & Animation 7th Edition by John M. Blain
Beginner’s Guide to Creating Characters in Blender Paperback by 3dtotal Publishing
Amazon Elastic Compute Cloud (EC2) M1 Mac instances for macOS
Running macOS in a Virtual Machine on Apple Silicon Macs - Install and run macOS in a virtual machine using the Virtualization framework.
Running Intel Binaries in Linux VMs with Rosetta - Running x86_64 Linux binaries under ARM Linux on Apple silicon.
Virtualize macOS on a Mac - Configure and run macOS guests on Apple silicon Mac computers.
Virtualize Linux on a Mac - Configure and run Linux guests on Apple silicon and Intel-based Mac computers.
Apple Hypervisor is a framework that builds virtualization solutions on top of a lightweight hypervisor, without third-party kernel extensions. Hypervisor provides C APIs so you can interact with virtualization technologies in user space, without writing kernel extensions (KEXTs). As a result, the apps you create using this framework are suitable for distribution on the Mac App Store.
Apple Virtualization Framework is a framework that provides high-level APIs for creating and managing virtual machines on Apple silicon and Intel-based Mac computers. This framework is used to boot and run a Linux-based operating system in a custom environment that you define. It also supports the Virtio specification, which defines standard interfaces for many device types, including network, socket, serial port, storage, entropy, and memory-balloon devices.
Apple Paravirtualized Graphics Framework is a framework that implements hardware-accelerated graphics for macOS running in a virtual machine, hereafter known as the guest. The operating system provides a graphics driver that runs inside the guest, communicating with the framework in the host operating system to take advantage of Metal-accelerated graphics.
Cilicon is a macOS App that leverages Apple’s Virtualization Framework to create, provision and run ephemeral virtual machines with minimal setup or maintenance effort. You should be able to get up and running with your self-hosted CI in less than an hour.
Parallels Desktop is a Desktop Hypervisor that delivers the fastest, easiest and most powerful application for running Windows/Linux on Mac (including the new Apple M1 chip) and ChromeOS.
Parallels Desktop for Mac
UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU that allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad.
Ubuntu on UTM
VMware Fusion 22H2 is a software hypervisor developed by VMware for Mac computers.It creates a virtual machine and install an operating system (such as Windows or Linux) inside that virtual machine.
Windows 11 on VMware Fusion
Tart is a virtualization toolset to build, run and manage virtual machines on Apple Silicon.
Tart
Multipass is a tool to generate cloud-style Ubuntu VMs quickly on Linux, macOS, and Windows. It uses KVM on Linux, Hyper-V on Windows, and HyperKit on macOS.
VMware Horizon is a digital workspace with the efficient delivery of virtual desktops and applications that equips workers anywhere, anytime, and on any device.
VMware Carbon Black is a cloud–native endpoint protection platform combines the intelligent system hardening and behavioral prevention needed to keep emerging threats at bay.
Proxmox Virtual Environment(VE) is a complete open-source platform for enterprise virtualization. It includes a built-in web interface that you can easily manage VMs and containers, software-defined storage and networking, high-availability clustering, and multiple out-of-the-box tools on a single solution.
VirtManager is a graphical tool for managing virtual machines via libvirt. Most usage is with QEMU/KVM virtual machines, but Xen and libvirt LXC containers are well supported. Common operations for any libvirt driver should work.
oVirt is an open-source distributed virtualization solution, designed to manage your entire enterprise infrastructure. oVirt uses the trusted KVM hypervisor and is built upon several other community projects, including libvirt, Gluster, PatternFly, and Ansible.Founded by Red Hat as a community project on which Red Hat Enterprise Virtualization is based allowing for centralized management of virtual machines, compute, storage and networking resources, from an easy-to-use web-based front-end with platform independent access.
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module.
QEMU is a fast processor emulator using a portable dynamic translator. QEMU emulates a full system, including a processor and various peripherals. It can be used to launch a different Operating System without rebooting the PC or to debug system code.
macOS-Simple-KVM is a set of tools to easily set up a quick macOS VM in QEMU, accelerated by KVM.
Quickemu is a program that quickly create and run optimised Windows, macOS and Linux desktop virtual machines.
AWS ECS is a highly scalable, high-performance container orchestration service that supports Docker containers and allows you to easily run and scale containerized applications on AWS. Amazon ECS eliminates the need for you to install and operate your own container orchestration software, manage and scale a cluster of virtual machines, or schedule containers on those virtual machines.
Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of KVM. The project focuses on exclusively running modern, cloud workloads, on top of a limited set of hardware architectures and platforms. Cloud workloads refers to those that are usually run by customers inside a cloud provider. Cloud Hypervisor is implemented in Rust and is based on the rust-vmm crates.
Xen is focused on advancing virtualization in a number of different commercial and open source applications, including server virtualization, Infrastructure as a Services (IaaS), desktop virtualization, security applications, embedded and hardware appliances, and automotive/aviation.
Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. Packer does not replace configuration management like Chef or Puppet. In fact, when building images, Packer is able to use tools like Chef or Puppet to install software onto the image.
Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past. It provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
HVM (Hardware Virtual Machine) is a virtualization type that provides the ability to run an operating system directly on top of a virtual machine without any modification, as if it were run on the bare-metal hardware.
PV(ParaVirtualization) is an efficient and lightweight virtualization technique introduced by the Xen Project team, later adopted by other virtualization solutions. PV does not require virtualization extensions from the host CPU and thus enables virtualization on hardware architectures that do not support Hardware-assisted virtualization.
Network functions virtualization (NFV) is the replacement of network appliance hardware with virtual machines. The virtual machines use a hypervisor to run networking software and processes such as routing and load balancing. NFV allows for the separation of communication services from dedicated hardware, such as routers and firewalls. This separation means network operations can provide new services dynamically and without installing new hardware. Deploying network components with network functions virtualization only takes hours compared to months like with traditional networking solutions.
Software Defined Networking (SDN) is an approach to networking that uses software-based controllers or application programming interfaces (APIs) to communicate with underlying hardware infrastructure and direct traffic on a network. This model differs from that of traditional networks, which use dedicated hardware devices (routers and switches) to control network traffic.
Virtualized Infrastructure Manager (VIM) is a service delivery and reduce costs with high performance lifecycle management Manage the full lifecycle of the software and hardware comprising your NFV infrastructure (NFVI), and maintaining a live inventory and allocation plan of both physical and virtual resources.
Management and Orchestration(MANO) is an ETSI-hosted initiative to develop an Open Source NFV Management and Orchestration (MANO) software stack aligned with ETSI NFV. Two of the key components of the ETSI NFV architectural framework are the NFV Orchestrator and VNF Manager, known as NFV MANO.
Magma is an open source software platform that gives network operators an open, flexible and extendable mobile core network solution. Their mission is to connect the world to a faster network by enabling service providers to build cost-effective and extensible carrier-grade networks. Magma is 3GPP generation (2G, 3G, 4G or upcoming 5G networks) and access network agnostic (cellular or WiFi). It can flexibly support a radio access network with minimal development and deployment effort.
OpenRAN is an intelligent Radio Access Network(RAN) integrated on general purpose platforms with open interface between software defined functions. Open RANecosystem enables enormous flexibility and interoperability with a complete openness to multi-vendor deployments.
Open vSwitch(OVS)is an open source production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag).
Edge is a distributed computing framework that brings enterprise applications closer to data sources such as IoT devices or local edge servers. This proximity to data at its source can deliver strong business benefits, including faster insights, improved response times and better bandwidth availability.
Multi-access edge computing (MEC) is an Industry Specification Group (ISG) within ETSI to create a standardized, open environment which will allow the efficient and seamless integration of applications from vendors, service providers, and third-parties across multi-vendor Multi-access Edge Computing platforms.
Virtualized network functions(VNFs) is a software application used in a Network Functions Virtualization (NFV) implementation that has well defined interfaces, and provides one or more component networking functions in a defined way. For example, a security VNF provides Network Address Translation (NAT) and firewall component functions.
Cloud-Native Network Functions(CNF) is a network function designed and implemented to run inside containers. CNFs inherit all the cloud native architectural and operational principles including Kubernetes(K8s) lifecycle management, agility, resilience, and observability.
Physical Network Function(PNF) is a physical network node which has not undergone virtualization. Both PNFs and VNFs (Virtualized Network Functions) can be used to form an overall Network Service.
Network functions virtualization infrastructure(NFVI) is the foundation of the overall NFV architecture. It provides the physical compute, storage, and networking hardware that hosts the VNFs. Each NFVI block can be thought of as an NFVI node and many nodes can be deployed and controlled geographically.
Virtualization-based Security (VBS) is a hardware virtualization feature to create and isolate a secure region of memory from the normal operating system.
Hypervisor-Enforced Code Integrity (HVCI) is a mechanism whereby a hypervisor, such as Hyper-V, uses hardware virtualization to protect kernel-mode processes against the injection and execution of malicious or unverified code. Code integrity validation is performed in a secure environment that is resistant to attack from malicious software, and page permissions for kernel mode are set and maintained by the hypervisor.
NVIDIA virtual GPU (vGPU) is a software enables powerful GPU performance for workloads ranging from graphics-rich virtual workstations to data science and AI, enabling IT to leverage the management and security benefits of virtualization as well as the performance of NVIDIA GPUs required for modern workloads.
AMD MxGPU is a hardware-based virtualized GPU solution, is built on industry standard SR-IOV (Single-Root I/O Virtualization) technology and allows multiple virtualized users per physical GPU to work remotely.
Docker Desktop for Apple silicon
Lima is a tool that launches Linux virtual machines with automatic file sharing and port forwarding (similar to WSL2), and containerd. It’s a great free and open-source alternative for Docker Desktop.
brew install lima docker docker-credential-helper
Colima is a container runtimes on macOS (and Linux) with minimal setup.
Included Features:
M1/M2 Macs and Intel support
Docker and Containerd support
Kubernetes
Port Forwarding
Volume mounts
Homebrew
brew install colima
MacPorts
sudo port install colima
Nix
nix-env -iA nixpkgs.colima
Container Architecture. Source: Containerd.io
Docker Certified Associate (DCA) certification
Docker Documentation | Docker Documentation
Docker Courses on Linkedin Learning
Lima is a tool that launches Linux virtual machines with automatic file sharing and port forwarding (similar to WSL2), and containerd. It’s a great free and open-source alternative for Docker Desktop.
Colima is a container runtimes on macOS (and Linux) with minimal setup.
Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly working in collaboration with cloud, Linux, and Windows vendors, including Microsoft.
Docker Enterprise is a subscription including software, supported and certified container platform for CentOS, Red Hat Enterprise Linux (RHEL), Ubuntu, SUSE Linux Enterprise Server (SLES), Oracle Linux, and Windows Server 2016, as well as for cloud providers AWS and Azure. In November 2019 Docker’s Enterprise Platform business was acquired by Mirantis.
Docker Desktop is an application for MacOS and Windows machines for the building and sharing of containerized applications and microservices. Docker Desktop delivers the speed, choice and security you need for designing and delivering containerized applications on your desktop. Docker Desktop includes Docker App, developer tools, Kubernetes and version synchronization to production Docker Engines.
Docker Hub is the world’s largest library and community for container images. Browse over 100,000 container images from software vendors, open-source projects, and the community.
Docker Compose is a tool that was developed to help define and share multi-container applications. With Docker Compose, you can create a YAML file to define the services and with a single command, can spin everything up or tear it all down.
Docker Swarm is a Docker-native clustering system swarm is a simple tool which controls a cluster of Docker hosts and exposes it as a single “virtual” host.
Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession.
Docker Containers is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
Docker Engine is a container runtime that runs on various Linux (CentOS, Debian, Fedora, Oracle Linux, RHEL, SUSE, and Ubuntu) and Windows Server operating systems. Docker creates simple tooling and a universal packaging approach that bundles up all application dependencies inside a container which is then run on Docker Engine.
Docker Images is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. Images have intermediate layers that increase reusability, decrease disk usage, and speed up docker build by allowing each step to be cached. These intermediate layers are not shown by default. The SIZE is the cumulative space taken up by the image and all its parent images.
Docker Network is a that displays detailed information on one or more networks.
Docker Daemon is a service started by a system utility, not manually by a user. This makes it easier to automatically start Docker when the machine reboots. The command to start Docker depends on your operating system. Currently, it only runs on Linux because it depends on a number of Linux kernel features, but there are a few ways to run Docker on MacOS and Windows as well by configuring the operating system utilities.
Docker Storage is a driver controls how images and containers are stored and managed on your Docker host.
Kitematic is a simple application for managing Docker containers on Mac, Linux and Windows letting you control your app containers from a graphical user interface (GUI).
Open Container Initiative is an open governance structure for the express purpose of creating open industry standards around container formats and runtimes.
Buildah is a command line tool to build Open Container Initiative (OCI) images. It can be used with Docker, Podman, Kubernetes.
Podman is a daemonless, open source, Linux native tool designed to make it easy to find, run, build, share and deploy applications using Open Containers Initiative (OCI) Containers and Container Images. Podman provides a command line interface (CLI) familiar to anyone who has used the Docker Container Engine.
Containerd is a daemon that manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond. It is available for Linux and Windows.
Running Kubernetes Locally on Apple Silicon (M1/M2)
kind is a tool for running local Kubernetes clusters using Docker container “nodes”. It was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
macOS home-brew command
brew install kind
Okra (Orchestration with Kubernetes on Apple) is a virtualization layer created for Mac build infrastructure, Orka allows you to orchestrate macOS in a cloud environment using Kubernetes on genuine Apple hardware.
OKRA CLI
Colima is a container runtimes on macOS (and Linux) with minimal setup.
Included Features:
M1/M2 Macs and Intel support
Docker and Containerd support
Kubernetes
Port Forwarding
Volume mounts
Homebrew
brew install colima
MacPorts
sudo port install colima
Nix
nix-env -iA nixpkgs.colima
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.
Getting Kubernetes Certifications
Getting started with Kubernetes on AWS
Intro to Azure Kubernetes Service
Getting started with Google Cloud
Getting started with Kubernetes on Red Hat
Getting started with Kubernetes on IBM
Red Hat OpenShift on IBM Cloud
Enable OpenShift Virtualization on Red Hat OpenShift
Running Apache Spark on Kubernetes
Kubernetes Across VMware vRealize Automation
All the Ways VMware Tanzu Works with AWS
Using Ansible in a Cloud-Native Kubernetes Environment
Managing Kubernetes (K8s) objects with Ansible
Setting up a Kubernetes cluster using Vagrant and Ansible
Running MongoDB with Kubernetes
Understanding the new GitLab Kubernetes Agent
Intro Local Process with Kubernetes for Visual Studio 2019
Kubernetes Tutorials from Pulumi
Kubernetes Playground by Katacoda
Scalable Microservices with Kubernetes course from Udacity
Open Container Initiative is an open governance structure for the express purpose of creating open industry standards around container formats and runtimes.
Buildah is a command line tool to build Open Container Initiative (OCI) images. It can be used with Docker, Podman, Kubernetes.
Podman is a daemonless, open source, Linux native tool designed to make it easy to find, run, build, share and deploy applications using Open Containers Initiative (OCI) Containers and Container Images. Podman provides a command line interface (CLI) familiar to anyone who has used the Docker Container Engine.
Containerd is a daemon that manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond. It is available for Linux and Windows.
Google Kubernetes Engine (GKE) is a managed, production-ready environment for running containerized applications.
Azure Kubernetes Service (AKS) is serverless Kubernetes, with a integrated continuous integration and continuous delivery (CI/CD) experience, and enterprise-grade security and governance. Unite your development and operations teams on a single platform to rapidly build, deliver, and scale applications with confidence.
Amazon EKS is a tool that runs Kubernetes control plane instances across multiple Availability Zones to ensure high availability.
AWS Controllers for Kubernetes (ACK) is a new tool that lets you directly manage AWS services from Kubernetes. ACK makes it simple to build scalable and highly-available Kubernetes applications that utilize AWS services.
Container Engine for Kubernetes (OKE) is an Oracle-managed container orchestration service that can reduce the time and cost to build modern cloud native applications. Unlike most other vendors, Oracle Cloud Infrastructure provides Container Engine for Kubernetes as a free service that runs on higher-performance, lower-cost compute.
Anthos is a modern application management platform that provides a consistent development and operations experience for cloud and on-premises environments.
Red Hat Openshift is a fully managed Kubernetes platform that provides a foundation for on-premises, hybrid, and multicloud deployments.
OKD is a community distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD adds developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams.
Odo is a fast, iterative, and straightforward CLI tool for developers who write, build, and deploy applications on Kubernetes and OpenShift.
Kata Operator is an operator to perform lifecycle management (install/upgrade/uninstall) of Kata Runtime on Openshift as well as Kubernetes cluster.
Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments.
OpenShift Hive is an operator which runs as a service on top of Kubernetes/OpenShift. The Hive service can be used to provision and perform initial configuration of OpenShift 4 clusters.
Rook is a tool that turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks of a storage administrator: deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management.
VMware Tanzu is a centralized management platform for consistently operating and securing your Kubernetes infrastructure and modern applications across multiple teams and private/public clouds.
Kubespray is a tool that combines Kubernetes and Ansible to easily install Kubernetes clusters that can be deployed on AWS, GCE, Azure, OpenStack, vSphere, Packet (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal.
KubeInit provides Ansible playbooks and roles for the deployment and configuration of multiple Kubernetes distributions.
Rancher is a complete software stack for teams adopting containers. It addresses the operational and security challenges of managing multiple Kubernetes clusters, while providing DevOps teams with integrated tools for running containerized workloads.
K3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.
Helm is a Kubernetes Package Manager tool that makes it easier to install and manage Kubernetes applications.
Knative is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads. Knative takes care of the operational overhead details of networking, autoscaling (even to zero), and revision tracking.
KubeFlow is a tool dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable.
Etcd is a distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. Etcd is used as the backend for service discovery and stores cluster state and configuration for Kubernetes.
OpenEBS is a Kubernetes-based tool to create stateful applications using Container Attached Storage.
Container Storage Interface (CSI) is an API that lets container orchestration platforms like Kubernetes seamlessly communicate with stored data via a plug-in.
MicroK8s is a tool that delivers the full Kubernetes experience. In a Fully containerized deployment with compressed over-the-air updates for ultra-reliable operations. It is supported on Linux, Windows, and MacOS.
Charmed Kubernetes is a well integrated, turn-key, conformant Kubernetes platform, optimized for your multi-cloud environments developed by Canonical.
Grafana Kubernetes App is a toll that allows you to monitor your Kubernetes cluster’s performance. It includes 4 dashboards, Cluster, Node, Pod/Container and Deployment. It allows for the automatic deployment of the required Prometheus exporters and a default scrape config to use with your in cluster Prometheus deployment.
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at Edge.It is built upon kubernetes and provides fundamental infrastructure support for network, app. deployment and metadata synchronization between cloud and edge.
Lens is the most powerful IDE for people who need to deal with Kubernetes clusters on a daily basis. It has support for MacOS, Windows and Linux operating systems.
Flux CD is a tool that automatically ensures that the state of your Kubernetes cluster matches the configuration you’ve supplied in Git. It uses an operator in the cluster to trigger deployments inside Kubernetes, which means that you don’t need a separate continuous delivery tool.
Platform9 Managed Kubernetes (PMK) is a Kubernetes as a service that ensures fully automated Day-2 operations with 99.9% SLA on any environment, whether in data-centers, public clouds, or at the edge.
Mac Development Ansible Playbook by Jeff Geerling
Ansible is a simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. It uses a very simple language (YAML, in the form of Ansible Playbooks) that allows you to describe your automation jobs in a way that approaches plain English. Ansible works on Linux (Red Hat EnterPrise Linux(RHEL) and Ubuntu) and Microsoft Windows.
Top Ansible Courses Online from Udemy
Introduction to Ansible: The Fundamentals on Coursera
Learning Ansible Fundamentals on Pluralsight
Introducing Red Hat Ansible Automation Platform 2.1
Ansible for DevOps Examples by Jeff Geerling
Getting Started: Writing Your First Playbook - Ansible
Working With Modules in Ansible
Ansible Best Practices: Roles & Modules
Working with command line tools for Ansible
Encrypting content with Ansible Vault
Using vault in playbooks with Ansible
Configuring Ansible on an Azure VM
How to Use Ansible: An Ansible Cheat Sheet Guide from DigitalOcean
Intro to Ansible on Linode | Spatial Labs
Ansible Automation Hub is the official location to discover and download supported collections, included as part of an Ansible Automation Platform subscription. These content collections contain modules, plugins, roles, and playbooks in a downloadable package.
Collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. As modules move from the core Ansible repository into collections, the module documentation will move to the collections pages.
Ansible Lint is a command-line tool for linting playbooks, roles and collections aimed towards any Ansible users. Its main goal is to promote proven practices, patterns and behaviors while avoiding common pitfalls that can easily lead to bugs or make code harder to maintain.
Ansible cmdb is a tool that takes the output of Ansible’s fact gathering and converts it into a static HTML overview page containing system configuration information.
Ansible Inventory Grapher visually displays inventory inheritance hierarchies and at what level a variable is defined in inventory.
Ansible Playbook Grapher is a command line tool to create a graph representing your Ansible playbook tasks and roles.
Ansible Shell is an interactive shell for Ansible with built-in tab completion for all the modules.
Ansible Silo is a self-contained Ansible environment by Docker.
Ansigenome is a command line tool designed to help you manage your Ansible roles.
ARA is a records Ansible playbook runs and makes the recorded data available and intuitive for users and systems by integrating with Ansible as a callback plugin.
Capistrano is a remote server automation tool. It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows.
Fabric is a high level Python (2.7, 3.4+) library designed to execute shell commands remotely over SSH, yielding useful Python objects in return. It builds on top of Invoke (subprocess command execution and command-line features) and Paramiko (SSH protocol implementation), extending their APIs to complement one another and provide additional functionality.
ansible-role-wireguard is an Ansible role for installing WireGuard VPN. Supports Ubuntu, Debian, Archlinx, Fedora and CentOS Stream.
wireguard_cloud_gateway is an Ansible role for setting up Wireguard as a gateway VPN server for cloud networks.
Red Hat OpenShift is focused on security at every level of the container stack and throughout the application lifecycle. It includes long-term, enterprise support from one of the leading Kubernetes contributors and open source software companies.
OpenShift Hive is an operator which runs as a service on top of Kubernetes/OpenShift. The Hive service can be used to provision and perform initial configuration of OpenShift 4 clusters.
Running Intel Binaries in Linux VMs with Rosetta - Running x86_64 Linux binaries under ARM Linux on Apple silicon.
Virtualize Linux on a Mac - Configure and run Linux guests on Apple silicon and Intel-based Mac computers.
Parallels Desktop for Mac is a program that let’s you runs Windows side-by-side with macOS (no restarting required) on your MacBook, MacBook Pro, iMac, iMac Pro, Mac mini or Mac Pro. Share files and folders, copy and paste images and text & drag and drop files between Mac and Windows applications.
Parallels Desktop for Mac
UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU that allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad.
Ubuntu on UTM
VMware Fusion is a software hypervisor developed by VMware for Mac computers.It creates a virtual machine and install an operating system (such as Windows or Linux) inside that virtual machine.
Multipass is a tool to generate cloud-style Ubuntu VMs quickly on Linux, macOS, and Windows. It uses KVM on Linux, Hyper-V on Windows, and HyperKit on macOS.
Hector Martin has merged the initial support for Apple M1 hardware into the Linux SOC (System On a Chip) tree for Linux Kernel 5.13. Also credit to developers Sven Peter and Alyssa Rosenzweig.
The Linux kernel 6.2 offers mainline support for the Apple M1 Pro, Max, and Ultra chips as work done by Asahi Linux’s developers was upstreamed. Though, that does not mean you can simply install a Linux distro like Fedora, Ubuntu, or Debian with the 6.2 kernel.
Asahi Linux is a project and community with the goal of porting Linux to Apple Silicon Macs, starting with the 2020 M1 Mac Mini, MacBook Air, and MacBook Pro. Their goal is not just to make Linux run on these machines but to polish it to the point where it can be used as a daily OS.
M1N1 is a bootloader and experimentation playground for Apple Silicon.
Apple Silicon to Apple Silicon VDM utility is a tool that lets you get a serial console on an Apple Silicon device and reboot it remotely, using only another Apple Silicon device running macOS and a standard Type C cable.
Asahi GPU is a repo that provides research for an open source graphics stack (3D acceleration) for Apple M1 chips.
The AsahiLinux Apple GPU drivers features are a work-in-progress OpenGL 2.1 and OpenGL ES 2.0 support for all current Apple M-series systems. That’s enough for hardware acceleration with desktop environments, like GNOME and KDE. It’s also enough for older 3D games, like Quake3 and Neverball.
Asahi Linux Graphics Team:
Installing the Apple GPU Drivers:
To get the new drivers, you need to run the linux-asahi-edge kernel and also install the mesa-asahi-edge Mesa package.
$ sudo pacman -Syu
$ sudo pacman -S linux-asahi-edge mesa-asahi-edge
$ sudo update-grub
Since only one version of Mesa can be installed at a time, pacman will prompt you to replace mesa with mesa-asahi-edge. This is normal!
Recommendation: Run Wayland instead of Xorg at this point, so if you’re using the KDE Plasma environment, make sure to install the Wayland session:
$ sudo pacman -S plasma-wayland-session
Then reboot, pick the Wayland session at the top of the login screen (SDDM), and enjoy! You might want to adjust the screen scale factor in System Settings → Display and Monitor (Plasma Wayland defaults to 100% or 200%, while 150% is often nicer). If you have “Force font DPI” enabled under Appearance → Fonts, you should disable that (it is saved separately for Wayland and Xorg, and shouldn’t be necessary on Wayland sessions). Log out and back in for these changes to fully apply.
Most of the hard work, including the kernel and boot software, was done by the Asahi Linux project and their development team.
While you will end up with a fairly usable computer, the exact hardware features you want may not be ready yet. Please look at the Asahi Linux Feature Support page for information.
For more general information about Linux on Apple Silicon Macs, refer to the Asahi Linux project and alpha installer release.
Asahi-Fedora-Builder is a script that builds a minimal Fedora image to run on Apple M1/M2 systems.
Installing a Prebuilt Image
Make sure to update your macOS to version 12.3 or later, then just pull up a Terminal in macOS and paste in this command:
curl https://leifliddy.com/fedora.sh | sh
Fedora Package Install
dnf install mkosi arch-install-scripts systemd-container zip
This build was tested with the following software:
NOTE: For more general information about Linux on Apple Silicon Macs, refer to the Asahi Linux project and Asahi Linux Alpha installer release.
This section will explain how to install NixOS on the internal NVMe drive of an Apple Silicon Mac using a customized version of the official NixOS install ISO, then boot it without the help of another computer. Aside from the Apple Silicon support module and AArch64 CPU, the resulting installation can be configured and operated like any other NixOS system. Your macOS install will still work normally, and you can easily switch between booting both macOS and NixOS.
Most of the hard work, including the kernel and boot software, was done by the Asahi Linux project and their development team.
Quick NixOS Intro:
NixOS is a Linux distribution built on top of the Nix package manager. It has tools dedicated to DevOps and deployment tasks.
Nix Tour is an interactive tour that uses the actual package manager to learn you the language by example, in the browser
Nix is a package manager and build system that parses reproducible build instructions specified in the Nix Expression Language, is a pure functional language with lazy evaluation. Nix expressions are pure functions taking dependencies as arguments and producing derivation specifying a reproducible build environment for the package. Nix stores the results of the build in unique addresses specified by a hash of the complete dependency tree, creating an immutable package store that allows for atomic upgrades, rollbacks and concurrent installation of different versions of a package, essentially eliminating dependency hell.
Nix Expression Language is a pure, lazy, functional language. Purity means that operations in the language don’t have side-effects (for instance, there is no variable assignment). The language is not a full-featured, general purpose language. Its main job is to describe packages, compositions of packages, and the variability within packages.
Nixpkgs is the largest repository of Nix packages(over 60,000 packages) and NixOS modules. The repository is hosted on GitHub and maintained by the community, with official backing from the NixOS Foundation. Additionally, checkout Language-specific package helpers and Alternative Package Sets.
NixOS Packages Search is a tool for searching through NixOS packages.
Damage to the macOS recovery partitions or the partition table could result in the Mac becoming unbootable and loss of all data on the internal NVMe drive. In this circumstance, a suitable USB cable and another computer which can run idevicerestore will be required to perform a DFU upgrade and restore normal operation. Backups are always wise.
While you will end up with a fairly usable computer, the exact hardware features you want may not be ready yet. Please look at the Asahi Linux Feature Support page for information. Any features marked with a kernel version or linux-asahi
should be supported by NixOS too.
The following items are required to get started:
This setup takes advantage of the Nix package manager, which handles downloading and compiling everything. You must first install it on your Linux host PC if it doesn’t run NixOS. Most distros are compatible, and installation (and uninstallation) is simple. Instructions are available on the NixOS website.
If you can’t or do not wish to install Nix and/or build these components yourself, installation ISOs are automatically built and made available from the GitHub Releases page. Download the latest one, use dd
or similar to transfer it to your USB flash drive, then skip down to the section on UEFI Preparation. Programs like unetbootin
are not supported. These ISOs are fully reproducible; that is, the ISO you download will be (or should be…) bit-identical to the one you will get by following these preparation instructions.
Clone this repository to a suitable location on the host PC. In the future, you can update this repository using git pull
and re-run the nix build
commands to update things.
$ git clone https://github.com/tpwrules/nixos-apple-silicon/
$ cd nixos-apple-silicon
The Asahi Linux project has developed m1n1 as a bridge between Apple’s boot firmware and the Linux world. m1n1 is installed as a faux macOS kernel into a stub macOS installation. In addition to booting Linux (or U-Boot), m1n1 also sets up the hardware and allows remote control and debugging over USB.
Change directories to the repository, then use Nix to build m1n1 and symlink the result to m1n1
:
nixos-apple-silicon$ nix build --extra-experimental-features 'nix-command flakes' .#m1n1 -o m1n1
m1n1 has been built and the build products are now in m1n1/build/
. You can also run m1n1’s scripts such as chainload.py
using a command like m1n1/bin/m1n1-chainload
.
In the default installation, m1n1 loads U-Boot and U-Boot is used to set up a standard UEFI environment from which GRUB or systemd-boot or whatever can be booted. Due to the limitations of the Apple boot picker, there must be one EFI system partition per installed OS.
Use Nix to build U-Boot along with m1n1 and the device trees:
nixos-apple-silicon$ nix build --extra-experimental-features 'nix-command flakes' .#uboot-asahi -o u-boot
The .bin
file with m1n1, the device trees, and U-Boot joined together is now in u-boot/
.
The bootstrap NixOS installer ISO contains UEFI-compatible GRUB, the Asahi Linux kernel, its initrd, and enough packages and drivers to allow connection to the Internet in order to download and install a full NixOS system.
nixos-apple-silicon$ nix build --extra-experimental-features 'nix-command flakes' .#installer-bootstrap -o installer -j4 -L
The installer ISO is now available as installer/iso/nixos-*.iso
. Use dd
or similar to transfer it to your USB flash drive. Programs like unetbootin
are not supported.
This setup uses the alpha Asahi Linux installer to install a stub macOS and standard UEFI boot environment from which the NixOS installer and installed OS will run. These steps must be run from Terminal.app in macOS. You must also be logged into an administrator account.
Download and run the alpha installer with the following command:
% curl https://alx.sh | sh
Choose the following options to get started:
Resize your existing macOS install:
r
)Install UEFI environment:
f
)Boot into recovery mode by holding the power button down as directed and select the new NixOS option in the boot picker. Follow the prompts and enter your administrator password. The local policy update will take several seconds to complete. Once complete, select that you want to set a custom boot object and put your system to permissive security mode, enter your administrator username (the same one you put in the password for earlier) and password, then reboot when prompted.
If everything went well, you will restart into U-Boot with the Asahi Linux and U-Boot logos on-screen. Shut the system down by holding the power button, then proceed to the next step.
Shut down the machine fully. Connect the flash drive with the installer ISO to a USB-C port through the USB A to C adapter. If on a Mac mini, you must use the USB-C ports as U-Boot does not support the USB-A ports at this time. If not using Wi-Fi, connect the Ethernet cable to the network port or adapter as well.
Start the Mac, and U-Boot should start booting from the USB drive automatically. If you’ve already installed something to the internal NVMe drive, U-Boot will try to boot it first. To instead boot from USB, hit a key to stop autoboot when prompted, then run the command run bootcmd_usb0
.
GRUB will start, then the NixOS installer after a short delay (the default GRUB option is fine). You will get a console prompt once booting completes. Run the command sudo su
to get a root prompt in the installer. If the console font is too small, run the command setfont ter-v32n
to increase the size.
DANGER: Damage to the GPT partition table, first partition (iBootSystemContainer
), or the last partition (RecoveryOSContainer
) could result in the loss of all data and render the Mac unbootable and unrecoverable without assistance from another computer! Do not use your distro’s automated partitioner or partitioning instructions!
We will add a root partition to the remaining free space and format it as ext4. Alternative partition layouts and filesystems, including LUKS encryption, are possible, but not covered currently.
Create the root partition to fill up the free space:
nixos# sgdisk /dev/nvme0n1 -n 0:0 -s
[...]
The operation has completed successfully.
Identify the number of the new root partition (type code 8300, typically second to last):
nixos# sgdisk /dev/nvme0n1 -p
Disk /dev/nvme0n1: 244276265 sectors, 931.8 GiB
Model: APPLE SSD AP1024Q
Sector size (logical/physical): 4096/4096 bytes
Disk identifier (GUID): 27054D2E-307A-41AA-9A8C-3864D56FAF6B
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 5
First usable sector is 6, last usable sector is 244276259
Partitions will be aligned on 1-sector boundaries
Total free space is 0 sectors (0 bytes)
Number Start (sector) End (sector) Size Code Name
1 6 128005 500.0 MiB FFFF iBootSystemContainer
2 128006 219854567 838.2 GiB AF0A Container
3 219854568 220465127 2.3 GiB AF0A
4 220465128 220590311 489.0 MiB EF00
5 220590312 242965550 85.4 GiB 8300
6 242965551 244276259 5.0 GiB FFFF RecoveryOSContainer
Format the new root partition:
nixos# mkfs.ext4 -L nixos /dev/nvme0n1p5
The subsequent steps in this section will help you install NixOS onto your new partitions. More information is available in the Installing section of the NixOS manual. Some changes to the configuration procedure as described in that manual are needed for NixOS on Apple Silicon to work properly.
Mount the root partition, then the EFI system partition that was created by the Asahi Linux installer specifically for NixOS:
nixos# mount /dev/disk/by-label/nixos /mnt
nixos# mkdir -p /mnt/boot
nixos# mount /dev/disk/by-partuuid/`cat /proc/device-tree/chosen/asahi,efi-system-partition` /mnt/boot
Create a default configuration for the new system, then copy the Apple Silicon support module into it:
nixos# nixos-generate-config --root /mnt
nixos# cp -r /etc/nixos/apple-silicon-support /mnt/etc/nixos/
nixos# chmod -R +w /mnt/etc/nixos/
Use vim (or any editor of your choice) to edit the configuration of the new system to include the Apple Silicon support module. Be aware that other editors and most documentation has been left out of the bootstrap installer to save space and time.
nixos# vim /mnt/etc/nixos/configuration.nix
Add the ./apple-silicon-support
directory to the imports list and switch off the canTouchEfiVariables
option. That portion of the file should look like this:
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# Include the necessary packages and configuration for Apple Silicon support.
./apple-silicon-support
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false;
If you used the cross-compiled installer image, i.e. you downloaded the ISO from GitHub or built it on an x86_64-linux
machine, you may add the following line to re-use the cross-compiled Asahi packages. If you don’t, they will be rebuilt in the installer, which wastes time. When you update the system and they need to be rebuilt on the Mac itself, remove this line or you will get an error that an x86_64-linux
builder is required.
# Remove if you get an error that an x86_64-linux builder is required.
hardware.asahi.pkgsSystem = "x86_64-linux";
The configuration above is the minimum required to produce a bootable system, but you can further edit the file as desired to perform additional configuration. Uncomment the relevant options and change their values as explained in the file. Note that some advertised features may not work properly at this time. Refer to the NixOS installation manual for further guidance.
Various non-free non-redistributable peripheral firmware files are required to use system hardware like Wi-Fi. The Asahi Linux installer grabs these from macOS and stores them on the EFI system partition when it is created. The NixOS installer loads them from there while booting so that all hardware is available during installation. By default, the Apple Silicon support module will automatically reference the files in the EFI system partition and incorporate them into your configuration to be managed by the normal NixOS mechanisms.
Currently, the only supported way to update the peripheral firmware files is to destroy and re-create the EFI system partition, so they will not change unexpectedly. If you do not want the impurity of referencing them (or are using flakes where this is prohibited), copy them off the EFI system partition (e.g. on the installation ISO mkdir -p /mnt/etc/nixos/firmware && cp /mnt/boot/asahi/{all_firmware.tar.gz,kernelcache*} /mnt/etc/nixos/firmware
) and specify this path in your configuration:
# Specify path to peripheral firmware files.
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
# Or disable extraction and management of them completely.
# hardware.asahi.extractPeripheralFirmware = false;
You can choose to build the Asahi kernel with a 4K page size by enabling the appropriate option. This results in a reduction in raw compilation speed of 10-25%, but improves software compatibility in some cases (such as with Chromium/Electron and x86 emulation).
# Build the kernel with 4K pages to improve software compatibility at
# the cost of performance in some cases.
hardware.asahi.use4KPages = true;
If you want to install a desktop environment, you will have to uncomment the option to enable X11 and NetworkManager, then add an option to include your favorite desktop environment. You may also wish to include graphical packages such as firefox
in environment.systemPackages
. For example, to install Xfce:
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.desktopManager.xfce.enable = true;
Some keyboard layouts are not detected correctly. On some devices, the ` key is swapped with <
, and ~
with >
. The layout can be fixed by setting options in boot.extraModprobeConfig
. Which option needs to be set depends on your hardware keyboard’s layout (see: Arch Wiki - Apple Keyboard).
# For ` to < and ~ to > (for those with US keyboards)
boot.extraModprobeConfig = ''
options hid_apple iso_layout=0
'';
Once you are happy with your initial configuration, you may install the system. This will have to download a large amount of data.
You can configure wireless networking in the installer using wpa_supplicant
by following the minimal installer directions in the NixOS manual.
Once the network is set up, ensure the time is set correctly, then install the system. You will be asked to set a root password as the final step:
nixos# systemctl restart systemd-timesyncd
nixos# nixos-install
[...]
setting root password...
New password: ******
Retype new password: ******
passwd: password updated successfully
installation finished!
If there are any errors, or you mess up entering the root password, you can edit the configuration and safely re-run the command.
Once complete, reboot the system:
nixos# reboot
When the system reboots, the bootloader will come up and boot the default configuration after a short delay. Once NixOS boots, log in with the root password, and create your account, or set your user account password if you created your account in the configuration. To learn more about NixOS’s configuration system, read the section in the manual on changing the configuration.
The machine is now set up to boot NixOS by default when turned on. To access the boot picker, turn off the machine, then hold the power button to turn the machine on instead of just pressing it. Let go once the options come up. To boot a particular OS once, click on it, then click Continue underneath it. To switch the default OS, click on the desired default, hold Option (Alt), then click Always Use underneath it.
By selecting the appropriate menu option in the Asahi Linux installer, you can also choose to install m1n1 without U-Boot and run U-Boot, the bootloader, and the OS under m1n1’s hypervisor.
To run U-Boot under the hypervisor, start m1n1 and attach the Mac to the host PC using an appropriate USB cable, change directories to the repo, then run:
nixos-apple-silicon$ m1n1/bin/m1n1-run_guest --raw u-boot/m1n1-u-boot.bin
To access the serial console, in a separate terminal run:
$ nix-shell -p picocom --run 'picocom /dev/ttyACM1'
Downloading the kernel over USB using m1n1 is not supported.
If something goes wrong and NixOS doesn’t boot or is otherwise unusable, you can first try rolling back to a previous generation. Instead of selecting the default bootloader option, choose another configuration that worked previously.
If something is seriously wrong and the bootloader does not work (or you don’t have any other generations), you will want to get back into the installer. To start the installer with a system installed on the internal disk, shut down the computer, re-insert the USB drive with the installer, start it up again, hit a key in U-Boot when prompted to stop autoboot, then run the command run bootcmd_usb0
.
Once in the installer, you can re-mount your root partition and EFI system partition without reformatting them. Depending on what exactly went wrong, you might need to edit your configuration, copy over the latest Apple Silicon support module, or update U-Boot using the latest installer.
Rerunning the installer will create a new generation but not touch any user data. This means you can “undo” the installation by selecting a previous generation in the bootloader. To redo the installation without changing your root password or changing the version of Nixpkgs, run:
# nixos-install --no-root-password --no-channel-copy
In the extreme case, you can delete the EFI system partition and stub macOS install and rerun the Asahi Linux installer, then follow the steps above to reinstall NixOS’s bootloader menu. You will need to regenerate the hardware configuration using nixos-generate-config --root /mnt
because the EFI system partition’s ID will change. This shouldn’t modify your root partition or other NixOS configuration, but of course it’s always smart to have a backup. You might also wish to re-copy the peripheral firmware files.
NixOS itself can be updated like any other NixOS system. In brief, this is as follows:
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
You may have to reboot after updating in some cases. If something goes wrong, you can boot a previous generation and roll back the channel update. For more details, consult the Upgrading section of the NixOS manual.
To update the Apple Silicon support module, including the Asahi kernel, U-Boot, and m1n1, you can simply download newer files from this repo under apple-silicon-support
and place them under /etc/nixos/apple-silicon-support
. Any changes will require a configuration rebuild and reboot to take effect. If you wish to customize your kernel, you can edit the kernel config in /etc/nixos/apple-silicon-support/kernel/config
. Consult the comments in /etc/nixos/apple-silicon-support/kernel/default.nix
and /etc/nixos/apple-silicon-support/kernel/package.nix
for more details. Note that if the kernel device trees change, U-Boot will need to be updated too.
U-Boot and m1n1 are automatically managed by NixOS’ bootloader system. If you roll back to a previous generation and things do not work properly due to a device tree incompatibility, you can run /run/current-system/bin/switch-to-configuration switch
then reboot to force the bootloader and the correct version of U-Boot/m1n1 to be reinstalled and loaded.
If you want the Apple Silicon support module to be upgraded in tandem with NixOS instead of manually downloading new files, you can add it as a channel with the following command:
$ sudo nix-channel --add https://github.com/tpwrules/nixos-apple-silicon/archive/main.tar.gz apple-silicon-support
Modify your /etc/nixos/configuration.nix
to reference the channel instead of the local files:
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# Include the necessary packages and configuration for Apple Silicon support.
<apple-silicon-support/apple-silicon-support>
];
You can now update NixOS as normal. Note that Apple Silicon support module updates will generally require reboots to load new kernels and other boot components:
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
$ sudo reboot
idevicerestore
In extremely extreme circumstances (i.e. something messed up the firmware partition, recovery partition, or partition table), your Mac may fail to boot. On the Mac mini (and presumably Mac Studio), this state is identifiable by a flashing orange power light indicating the Morse code for SOS. On a Mac laptop, this state is identifiable by an illustration of an exclamation point in a circle on the screen with a link to Apple’s website.
To make the Mac bootable again, you can use idevicerestore from another Mac or Linux x86_64 or aarch64 VM or computer that has an Internet connection. You will need a USB cable with at least one USB-C end. This procedure has been tested with Mac and Linux hosts restoring a Mac mini with macOS 12.4.
Please note that this procedure may require you to unrecoverably destroy all data on the Mac’s internal drive. If erasing is necessary, you will be clearly warned and asked to confirm before it happens. The drive will end up zeroed and its encryption keys (probably) regenerated, so not even the NSA will be able to save you. If you haven’t made backups, make peace with yourself now.
You’ll need to build idevicerestore
from source to get a version capable of restoring Apple Silicon Macs. If Nix is already installed on your second computer, an appropriate version is already packaged in recent nixpkgs-unstable
. Check out and build both idevicerestore
and usbmuxd
(if on Linux):
# git clone https://github.com/NixOS/nixpkgs/
# cd nixpkgs
# nix-build -A pkgs.idevicerestore -o idevicerestore
# nix-build -A pkgs.usbmuxd -o usbmuxd # if on Linux
To start the procedure, hook up the appropriate port on your unbootable Mac to the second computer and invoke DFU mode. This process is covered by Steps 1 and 2 of Apple’s documentation. We will first try what Apple calls a “revive” where the disk is not erased, although both we and idevicerestore
still call it a “restore”.
If DFU mode was started correctly, the unbootable Mac will show up on your second computer as an Apple, Inc. Mobile Device (DFU Mode)
in lsusb
on Linux or System Information on macOS. If you see Apple, Inc. Apple Mobile Device [Recovery Mode]
instead (or nothing), the procedure was not followed correctly and you need to try again.
Open a terminal on your second computer and, if you are on Linux and didn’t install the udev rules (which Nix did not), start usbmuxd
in the background by running it without any arguments. Then, ask idevicerestore
to restore the firmware by using the --latest
flag. If you wish to erase the disk either because the revive didn’t work or because you want to start with a clean slate, use the --erase
flag also.
# sudo usbmuxd/bin/usbmuxd # Linux only
# sudo idevicerestore/bin/idevicerestore --latest
idevicerestore 1.0.0-unstable-2022-05-22
Found device in DFU mode
Identified device as j274ap, Macmini9,1
The following firmwares are currently being signed for Macmini9,1:
[...]
Select the firmware you want to restore:
Once idevicerestore
detects the unbootable Mac, select the desired firmware (usually number 1
) and wait patiently while the firmware is downloaded; it’s about 13GiB. If idevicerestore
doesn’t detect the unbootable Mac, make sure that your cables are hooked up correctly, that you used sudo
, and that you are using a suitably recent version.
The restore process will automatically start once the firmware is downloaded and verified. If idevicerestore
fails with the message ERROR: Device did not disconnect. Possibly invalid iBEC. Reset device and try again.
, the unbootable Mac is likely not in DFU mode, or there is something wrong with your system’s udev related to hotplug events. Check that you followed Apple’s procedure correctly and that the appropriate USB device is detected.
After 30 seconds of messages and status updates, you should see the Apple logo on the unbootable Mac’s screen with a progress bar and idevicerestore
will tell you that it is Waiting for device to enter restore mode...
. If the unbootable Mac resets after a couple minutes and you get the message ERROR: Device failed to enter restore mode. Please make sure that usbmuxd is running.
, then usbmuxd
is likely not running. Start it and try again.
Once the restore process starts, the progress bar will start moving and idevicerestore
will spam lots of information about the process. If it fails with ERROR: Unable to restore device
, your only choice may be to restart the process, but this time pass the --erase
flag to idevicerestore
and destroy all data on the unbootable Mac’s internal drive.
Otherwise, wait patiently while the restore proceeds. Expect it to take 20 or 30 minutes at least. Eventually idevicerestore
will say DONE
and the formerly-unbootable Mac will reboot and start recovery mode (if erasing was not necessary) or the out-of-the-box wizard (if the disk was erased) and you can use it again.
Finally, shut down usbmuxd
if on Linux and you started it manually. To clean up your second computer, remove the downloaded firmware, the idevicerestore
and usbmuxd
GC roots, and run the Nix garbage collector:
# sudo killall usbmuxd # if on Linux
# sudo rm -rf *.ipsw* UniversalMac*
# rm -f result* usbmuxd idevicerestore
# nix-collect-garbage
To recover the space on the host PC, change directories into the repo, remove the built symlinks (removing just the installer will recover almost all the space), then run the garbage collector:
nixos-apple-silicon$ rm m1n1 u-boot installer result
nixos-apple-silicon$ nix-collect-garbage
NixOS can be completely uninstalled by deleting the stub partition, EFI system partition, and root partition off the disk.
Boot back into macOS by shutting down the machine fully, then pressing and holding the power button until the boot picker comes up. Select the macOS installation, then click Continue to boot it. Log into an administrator account and open Terminal.app.
Identify the partitions to remove. In this example, disk0s3
is the stub because of its small size. disk0s4
is the EFI system partition and disk0s5
is the root partition:
% diskutil list disk0
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 1.0 TB disk0
1: Apple_APFS_ISC 524.3 MB disk0s1
2: Apple_APFS Container disk4 900.0 GB disk0s2
3: Apple_APFS Container disk3 2.5 GB disk0s3
4: EFI EFI - NIXOS 512.8 MB disk0s4
5: Linux Filesystem 91.6 GB disk0s5
6: Apple_APFS_Recovery 5.4 GB disk0s6
WARNING: Unlike Linux, on macOS each partition’s identifier does not necessarily equal its partition index. Double check the identifiers of your own system!
Remove the EFI system partition and root partition:
% diskutil eraseVolume free free disk0s4
Started erase on disk0s4 (EFI - NIXOS)
Unmounting disk
Finished erase on disk0
% diskutil eraseVolume free free disk0s5
Started erase on disk0s5
Unmounting disk
Finished erase on disk0
Remove the stub partition:
% diskutil apfs deleteContainer disk0s3
Started APFS operation on disk3
Deleting APFS Container with all of its APFS Volumes
[...]
Removing disk0s3 from partition map
Expand the main macOS partition to use the resulting free space. This command will take a few minutes to run; do not attempt to use the machine while it is in progress:
% diskutil apfs resizeContainer disk0s2 0
Started APFS operation
Aligning grow delta to 94,662,586,368 bytes and targeting a new physical store size of 994,662,584,320 bytes
[...]
Finished APFS operation
To complete the uninstallation, open the Startup Disk pane of System Preferences and select your macOS installation as the startup disk. If this is not done, the next boot will fail, and you will be asked to select another OS to boot from.
Most of the hard work, including the kernel and boot software, was done by the Asahi Linux project and their development team.
While you will end up with a fairly usable computer, the exact hardware features you want may not be ready yet. Please look at the Asahi Linux Feature Support page for information.
For more general information about Linux on Apple Silicon Macs, refer to the Asahi Linux project and alpha installer release.
Important Note: Starting from mid-2022, the best advice for getting Debian installed is to be found here: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/.
If you don’t want to use the prebuild artefacts, you can build them yourself using the following scripts:
Poweroff your Mac. Hold and press the power button until you see a wheel chain and Options written below. Approx 20 seconds.
In the boot picker, choose Options. Once loaded, open a Terminal under Utilities > Terminal
Run the asahi installer and select Debian:
curl -sL https://tg.st/d | sh
Follow the installer instructions.
Once Debian is booted log in as root without password and set a root password.
passwd
pwconv
Configure wifi by editing the wpa_supplicant.conf, enabling the interface and remove the # before allow-hotplug to enable it during boot.
vi /etc/wpa_supplicant/wpa_supplicant.conf
ifup wlan0
vi /etc/network/interfaces
Reboot to see if grub was correctly installed
reboot
Install a desktop environment for example blackbox
apt-get update
apt-get install -y xinit blackbox xterm firefox-esr lightdm
Create yourself an unprivileged user
useradd -m -c 'Firstname Lastname' -s /bin/bash <username>
passwd <username>
Optional install sshd. You can not log in as root, but only with your unprivileged user
apt update
apt install -y openssh-server
Consult the /root/quickstart.txt file to find out how to do other interesting things.
Image Credit: Alyssa Rosenzweig
Most of the hard work, including the kernel and boot software, was done by the Asahi Linux project and their development team.
While you will end up with a fairly usable computer, the exact hardware features you want may not be ready yet. Please look at the Asahi Linux Feature Support page for information.
For more general information about Linux on Apple Silicon Macs, refer to the Asahi Linux project and alpha installer release.
To install a prebuilt image run:
curl -sL https://tobhe.de/ubuntu/install > install.sh # Download
less install.sh # Review
sh install.sh # Run
The installer offers a choice of different Ubuntu releases and build configurations.
Currently supported are:
The default username and password are both ubuntu
. Root access can be achieved via sudo
.
Yes, The installer can automatically resize your macos partition according to your liking and install Ubuntu in the freed up space. Removing macOS is not supported at the moment since it is required to update the system firmware.
If you do not want to use the prebuilt disk image, you can build one yourself with the instructions below.
# Install dependencies
sudo apt-get install arch-install-scripts debootstrap mtools parted gnupg eatmydata rsync git squashfs-tools zip
# Install dependencies, if your builder system is NOT arm64
sudo apt-get install binfmt-support qemu qemu-user-static
cd ubuntu-asahi
# Build the entire live image
sudo ./build-generic.sh
The live GPT image file will be output to build/ubuntu.live.img
, the zip archive for the Asahi Linux installer will be output to build/ubuntu.live.img.zip
.
The clean.sh script will clean up the build folder, except for the cache folder, which is used by debootstrap to cache debs.
cd ubuntu-asahi
# Clean the build folder
./clean.sh
Parallels Desktop for Mac is a program that let’s you runs Windows side-by-side with macOS (no restarting required) on your MacBook, MacBook Pro, iMac, iMac Pro, Mac mini or Mac Pro. Share files and folders, copy and paste images and text & drag and drop files between Mac and Windows applications.
Parallels Desktop for Mac
UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU that allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad.
Windows 11 on UTM
VMware Fusion is a software hypervisor developed by VMware for Mac computers.It creates a virtual machine and install an operating system (such as Windows or Linux) inside that virtual machine.
Windows 11 on VMware Fusion
ARM64EC (“Emulation Compatible”) is a new application binary interface (ABI) for Windows 11 on ARM that runs with native speed and is interoperable with x64 architecture. An app, process, or even a module can freely mix and match with ARM64EC and x64 as needed. The ARM64EC code in the app will run natively while any x64 code will run using Windows 11 on ARM’s built-in emulation. The ARM64EC ABI differs slightly from the current ARM64 ABI in ways that make it binary compatible with x64 code. Specifically, the ARM64EC ABI follows x64 software conventions including calling convention, stack usage, and data alignment, making ARM64EC and x64 interoperable. Apps built as ARM64EC may contain x64 code but do not have to, since ARM64EC is its own complete, first-class ABI for Windows.
If you would like to Donate to the Godot Project
If you would like to Donate to the Blender Project
Unreal Online Learning is a free learning platform that offers hands-on video courses and guided learning paths.
Unreal Engine Authorized Training Program
Unreal Engine Training & Simulation
Getting Started with DirectX 12 Ultimate
Getting Started with Apple Metal
Game Design Online Courses from Udemy
Game Design Online Courses from Skillshare
Learn Game Design with Online Courses and Classes from edX
Game Design Courses from Coursera
Game Design and Development Specialization Course from Coursera
Unreal Engine is a game engine developed by Epic Games with the world’s most open and advanced real-time 3D creation tool. Continuously evolving to serve not only its original purpose as a state-of-the-art game engine, today it gives creators across industries the freedom and control to deliver cutting-edge content, interactive experiences, and immersive virtual worlds.
Unity is a cross-platform game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.
Unigine is a cross-platform game engine designed for development teams (C++/C# programmers, 3D artists) working on interactive 3D apps.
Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs, developed by Disney and CMU. Panda3D is open-source and free for any purpose, including commercial ventures.
Havok is a middleware software suite that provides a realistic physics engine component and related functions to video games. It is supported and optimized across all major platforms, including Nintendo Switch, PlayStation®, Stadia, and Xbox. Along with integrations for Unity and Unreal Engine and are used in countless proprietary game engines.
AutoDesk 3ds Max is a professional software program for 3D modeling, animation, rendering, and visualization. 3ds Max allows you to create stunning game environments, design visualizations, and virtual reality experiences.
Houdini is a 3D procedural software for modeling, rigging, animation, VFX, look development, lighting and rendering in film, TV, advertising and video game pipelines.
A-Frame is a web framework for building virtual reality experiences in WebVR with HTML and Entity-Component. A-Frame works on Vive, Rift, desktop, mobile platforms.
AppGameKit is a powerful game development engine, ideal for Hobbyist and Indie developers. Where you can start coding in the easy to learn AppGameKit BASIC or use the libraries in C++ & Xcode.
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, video editing and 2D animation pipeline.
GameMaker Studio 2 is the latest and greatest incarnation of GameMaker. It has everything you need to take your idea from concept to finished game. With no barriers to entry and powerful functionality, GameMaker Studio 2 is the ultimate 2D development environment.
Godot is a feature-packed, cross-platform game engine to create 2D and 3D games from a unified interface. It provides a comprehensive set of common tools, so that users can focus on making games without having to reinvent the wheel. Games can be exported in one click to a number of platforms, including the major desktop platforms (Linux, macOS, Windows) as well as mobile (Android, iOS) and web-based (HTML5) platforms.
Open Computing Language (OpenCL) is an open standard for parallel programming of heterogeneous platforms consisting of CPUs, GPUs, and other hardware accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms.
OpenGL Shading Language(GLSL) is a High Level Shading Language based on the C-style language, so it covers most of the features a user would expect with such a language. Such as control structures (for-loops, if-else statements, etc) exist in GLSL, including the switch statement.
High Level Shading Language(HLSL) is the High Level Shading Language for DirectX. Using HLSL, the user can create C-like programmable shaders for the Direct3D pipeline. HLSL was first created with DirectX 9 to set up the programmable 3D pipeline.
Vulkan is a modern cross-platform graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. Vulkan is currently in development by the Khronos consortium.
Metal is a low-level GPU programming framework used for rendering 2D and 3D graphics on Apple platforms such as iOS, iPadOS, macOS, watchOS and tvOS.
MoltenVK is an implementation of Vulkan running on iOS and macOS using Apple’s Metal graphics framework.
MoltenGL is an implementation of the OpenGL ES 2.0 API that runs on Apple’s Metal graphics framework.
Mesa 3D Graphics Library is a project began as an open-source implementation of the OpenGL specification. A system for rendering interactive 3D graphics. Mesa ties into several other open-source projects: the Direct Rendering Infrastructure, X.org, and Wayland to provide OpenGL support on Linux, FreeBSD, and other operating systems.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, DSPs, FPGAs and other processors or hardware accelerators.
VDPAU is the Video Decode and Presentation API for UNIX. It provides an interface to video decode acceleration and presentation hardware present in modern GPUs.
VA API is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities for video processing.
XvMC is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU hardware.
AMD Radeon ProRender is a powerful physically-based rendering engine that enables creative professionals to produce stunningly photorealistic images on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
NVIDIA Omniverse is a powerful, multi-GPU, real-time simulation and collaboration platform for 3D production pipelines based on Pixar’s Universal Scene Description and NVIDIA RTX.
LibGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, Mac OS X, Android, your WebGL enabled browser and iOS.
cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is based on cocos2d-iphone, but instead of using Objective-C, it uses C++. It works on iOS, Android, macOS, Windows and Linux.
MonoGame is a framework for creating powerful cross-platform games. The spiritual successor to XNA with thousands of titles shipped across desktop, mobile, and console platforms. MonoGame is a fully managed .NET open source game framework without any black boxes.
Three.js is a cross-browser JavaScript library and application programming interface used to create and display animated 3D computer graphics in a web browser using WebGL.
Superpowers is a downloadable HTML5 app for real-time collaborative projects . You can use it solo like a regular offline game maker, or setup a password and let friends join in on your project through their Web browser.
URHO3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.
Vivox is a voice & text chat platform that’s trusted by the world’s biggest gaming brands and titles such as Fortnite, PUBG, League of Legends, and Rainbow Six Siege.
HGIG is a volunteer group of companies from the game and TV display industries that meet to specify and make available for the public guidelines to improve consumer gaming experiences in HDR.
GameBlocks is a Server Side Anti-Cheat & Middleware software.
ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple. The latest version ARKit 3.5 takes advantage of the new LiDAR Scanner and depth sensing system on iPad Pro(2020) to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion.
RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.
ARCore is a software development kit developed by Google that allows for augmented reality applications in the real world. These tools include environmental understanding, which allows devices to detect horizontal and vertical surfaces and planes. It also includes motion tracking, which lets phones understand and track their positions relative to the world. Also ARCore’s Light Estimation API lets your digital objects appear realistically as if they’re actually part of the physical world.
OpenVR is an API and runtime that allows access to VR hardware(Steam Index, HTC Vive, and Oculus Rift) from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.
OpenVR Benchmark on Steam is the first benchmark tool for reproducibly testing your real VR performance, rendering inside of your VR headset.
OpenHMD is open source API and drivers that supports a wide range of HMD(head-mounted display) devices such as Oculus Rift, HTC Vive, Sony PSVR, and others.
openXR is a free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR) collectively known as XR—platforms and devices.
Monado is the first OpenXR™ runtime for GNU/Linux. Monado aims to jump-start development of an open source XR ecosystem and provide the fundamental building blocks for device vendors to target the GNU/Linux platform.
Libsurvive is a set of tools and libraries that enable 6 dof tracking on lighthouse and vive based systems that is completely open source and can run on any device. It currently supports both SteamVR 1.0 and SteamVR 2.0 generation of devices and should support any tracked object commercially available.
Simula is a VR window manager for Linux that runs on top of Godot. It takes less than 1 minute to install. Simula is officially compatible with SteamVR headsets equipped with Linux drivers (e.g. HTC Vive, HTC Vive Pro, & Valve Index). We have also added experimental support to OpenXR headsets that have Monado drivers (e.g. North Star, OSVR HDK, and PSVR). Some people have gotten the Oculus Rift S to run Simula via OpenHMD (see here).
Online Audio Editing Classes from Skillshare
Online Video Editing Classes Skillshare
Video Editing Courses from Udemy
Audio Editing Courses from udemy
Video Editing Courses from Coursera
The Basics of Audio Editing from Coursera
Audacity Podcast Production Course: Audio Editing for Podcasters
Video Editing Online Training Courses from LinkedIn Learning
Audio Editing Online Training Courses from LinkedIn Learning
H.264(AVC) is a video compression standard based on block-oriented and motion-compensated integer-DCT coding that defines multiple profiles (tools) and levels (max bitrates and resolutions) with support up to 8K.
H.265(HEVC) is a video compression standard that is the successor to H.264(AVC). It offers a 25% to 50% better data compression at the same level of video quality, or improved video quality at the same bit-rate.
FFmpeg is a leading multimedia framework that can decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge ones on multiple platforms such as Windows, macOS, and Linux.
HandBrake is a tool for transcoding video from almost any format with a selection of widely supported codecs. It is supported on Window, macOS, and Linux.
HTTP Live Streaming (HLS) is a communications protocol developed by Apple that sends live and on‐demand audio and video to iPhone, iPad, Mac, Apple Watch, Apple TV, and PC.
Dynamic Adaptive Streaming over HTTP (DASH) is an adaptive streaming protocol that allows for a video stream to switch between bit rates on the basis of network performance, in order to keep a video playing.
OpenMAX™ is a cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components to be developed, integrated and programmed across multiple operating systems and silicon platforms.
GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently.
Media Source Extensions (MSE) is a W3C specification that allows JavaScript to send byte streams to media codecs within Web browsers that support HTML5 video and audio. Also, this allows the implementation of client-side prefetching and buffering code for streaming media entirely in JavaScript.
WebRTC is an open-source project that adds real-time communication capabilities to your application that works on top of an open standard. It supports video, voice, and generic data to be sent between peers, allowing developers to build powerful voice- and video-communication solutions.
Apple ProRes is a codec technology developed by Apple for high-quality & high-performance editing in Final Cut Pro that supports up to 8K.
Premiere Pro is the industry-leading video editing software for film, TV, and the web. Creative tools, integration with other apps and services, and the power of Adobe Sensei help you craft footage into polished films and videos. With Premiere Rush you can create and edit new projects from any device.
Final Cut Pro is Apple’s professional grade video editing software.
Kdenlive is an open source video editing tool that supports unlimited multimedia files. It’s based on the MLT Framework, KDE and Qt. People who are looking for a very versatile video editing tool that comes packed with features. The latest 20.08 release is out with nifty features like Interface Layouts, Multiple Audio Stream support, Cached data management and Zoombars in the Clip Monitor and Effects Panel but one may argue that the highlights of this release are stability and interface improvements.
OpenShot is an open-source video editing tool that’s designed for users new in the editing environment. It has simple features such as a simple drag-and-drop function, it provides an easy-to-use and quick-to-learn user interface. The powerful video editor offers tons of efficient ways to cut and trim down your videos. You can freely utilize the unlimited tracks, video effects engine, title editor, 3D animations, slow motion, and time effects. It supports commonly used video codecs that are supported by FFmpeg like WebM (VP9), AVCHD (libx264), HEVC (libx265) and audio codecs like mp3 (libmp3lame) and aac (libfaac). The program can render MPEG4, ogv, Blu-ray and DVD video, and Full HD videos for uploading to the internet video websites like YouTube.
DaVinci Resolve is the world’s only solution that combines professional 8K editing, color correction, visual effects and audio post production all in one software tool! You can instantly move between editing, color, effects, and audio with a single click. DaVinci Resolve Studio is also the only solution designed for multi user collaboration so editors, assistants, colorists, VFX artists and sound designers can all work live on the same project at the same time.
Blender comes with a built-in video sequence editor allows you to perform basic actions like video cuts and splicing, as well as more complex tasks like video masking or color grading. The Video Editor includes: Live preview, luma waveform, chroma vectorscope and histogram displays. Audio mixing, syncing, scrubbing and waveform visualization.
Lightworks is a non-linear video editing application for editing and mastering digital video used by the film industry. Its professional edition has been used for box office hits, such as Shutter Island, Pulp Fiction, and Mission Impossible. Intimidating user interface. Like professional video editors, such as Adobe Premiere Pro, Lightworks is rather complicated to use for new users.
Shotcut is an open source multi-platform video editor. You can perform various actions such as video editing (including 4K video quality), add effects, create new movies, import most image files formats, export to almost any file format and much more.
Olive is a free non-linear video editor aiming to provide a fully-featured alternative to high-end professional video editing software.
OBS (Open Broadcaster Software) is free and open source software for video recording and live streaming. Stream to Twitch, YouTube and many other providers or record your own videos with high quality H264 / AAC encoding.
REAPER is a complete digital audio production application for computers, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset.REAPER supports a vast range of hardware, digital formats and plugins, and can be comprehensively extended, scripted and modified.
Logic Pro is a digital audio workstation (DAW) and MIDI sequencer software application for macOS.
Ableton Live is a digital audio workstation application. It’s designed to be an instrument for live performances as well as a tool for composing, recording, arranging, mixing, and mastering.
Bitwig Studio is a digital audio workstation that has linear and non-linear workflows for sound design, recording, live performance, and more. Along with 90+ instruments, effects, and other creative tools. It is supported Windows, macOS, and Linux.
SonoBus is an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network.
Avid Pro Tools is a digital audio workstation for mixing Dolby Atmos or other 3D audio for film or TV, working in a large mixing stage or a small editing suite.
Adobe Audition is a digital audio workstation with tools for color, audio, and graphics, Premiere Pro works seamlessly with other apps and services, including After Effects, Adobe Audition, and Adobe Stock.
JACK Audio Connection Kit AKA JACK is a professional sound server daemon that provides real-time, low-latency connections for both audio and MIDI data between applications that implement its API. JACK can be configured to send audio data over a network to a main machine, which then outputs the audio to a physical device. This can be useful to mix audio from a number of linked computers without requiring additional cables or hardware mixers, and keeping the audio path digital for as long as possible.
JACK2 is a C++ version of the JACK low-latency audio server for multi-processor machines. It is a new implementation of the JACK server core features that aims at removing some limitations of the JACK1 design. The activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used to have a more dynamic and robust system.
Image-Line FL Studio is a digital audio workstation for mixing audio and music sequencing developed by Image-Line.
Propellerhead Reason is a digital audio workstation with tools you need for creative music production, recording, sequencing and mixing.
Cockos Reaper is a full, flexible feature set digital audio workstation with tools used for commercial/home studios, broadcast, location recording, education, science/research, sound design, game development, and more.
PreSonus Studio One is a digital audio workstation application, used to create, record, mix and master music and other audio.
Steinberg Cubase is a digital audio workstation developed by Steinberg for music/MIDI recording and arranging/editing of audio.
Digital Performer is a digital audio workstation and music sequencer software package. It’s can recording, editing, arranging, mixing, mastering, MIDI, and more. Digital Performer will take your music to its highest level, thanks to sophisticated features like Stretch Audio (powered by Zynaptiq’s ZTX PRO technology), live triggering and looping.
Sonic Visualiser is a free, open-source application for Windows, Linux, and Mac, designed to be the first program you reach for when want to study a music recording closely.
PipeWire is a server and user space API to deal with multimedia pipelines.It provides a low-latency, graph based processing engine on top of audio and video devices that can be used to support the use cases currently handled by both pulseaudio and JACK. PipeWire was designed with a powerful security model that makes interacting with audio and video devices from containerized applications easy. Nodes in the graph can be implemented as separate processes, communicating with sockets and exchanging multimedia content using fd passing.
LMMS is an open source digital audio workstation application program. When LMMS is pairedr with appropriate computer hardware, it allows music to be produced by arranging samples, synthesizing sounds, playing on a MIDI keyboard, and combining the features of trackers and sequencers. Developed by Paul Giblock and Tobias Junghans, this program stands for “Linux MultiMedia Studio” and supports handy plugins that enables it to work on different operating systems.
Ardour is an open source, collaborative effort of a worldwide team including musicians, programmers, and professional recording engineers. Development is transparent — anyone can watch our work as it happens. Like a good piece of vintage hardware, you can open the box and look inside.
Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Developed by a group of volunteers as open source and offered free of charge. Amazing support community.
Blender’s Cycles Render Engine. Source: Blender
Blender VFX(Visual Effects). Source: Blender
Designing a simple UI/UX for an application in Adobe XD. Source: Adobe
Introduction to Pixar’s Universal Scene Description (USD)
Intro to using Universal Scene Description with NVIDIA
First steps with Universal Scene Description in Blender
AMD Radeon ProRender Developer Suite
Blender Foundation Certification Training
AutoDesk Learning, Training & Certification
AutoDesk Courses and Specializations from Coursera
Getting Started with Cinema 4D
Graphic Design Masterclass(Photoshop, Illustrator, InDesign) from Udemy
Vectr: Beginner’s Guide To Graphic Design from udemy
Canva MasterClass: Design For EveryDay Use from Udemy
Adobe Creative Cloud is a collection of 20+ desktop and mobile apps(Lightroom, Photoshop, Illustrator, InDesign, Rush, Etc.) and services for photography, design, video, web, UX, and more.
Autodesk® is a collection of professional software products and services used in 3D design, architecture, engineering, manufacturing, and high production entertainment companies.
Maya® is a 3D computer animation, modeling, simulation, and rendering software that can create realistic effects from explosions to cloth simulation.
Maya LT™ is a game design software for indie game makers that can create and animate realistic-looking characters, props, and environments using the sophisticated 3D modeling and animation tools.
Autodesk® Maya. Source:Autodesk
3DS Max® is a 3D modeling and rendering software for design visualization, games, and animation.
Autodesk® 3DS Max. Source:Autodesk
Arnold is an advanced Monte Carlo ray tracing(Global illumination) renderer that helps you work more efficiently.
ReCap™ is a Pro 3D scanning software to transform the physical world into a digital asset. With reality capture data you can better understand and verify existing and as-built conditions to gain insights and make better decisions.
Flame® is a 3D VFX and finishing software provides powerful tools for 3D compositing, visual effects, and editorial finishing. An integrated, creative environment means faster compositing, advanced graphics, color correction, and more.
Mudbox® is a 3D digital painting and sculpting software that let’s you sculpt and paint highly detailed 3D geometry and textures.
Autodesk® Mudbox. Source:Autodesk
Blender is a professional, free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, interactive 3D applications and video games.
Cinema 4D is a professional 3D and VFX software suite that is capable of doing procedural and polygonal modeling, animation, lighting, texturing, motion graphic and rendering.
Houdini is a 3D procedural software for modeling, rigging, animation, VFX, look development, lighting and rendering in film, TV, advertising and video game pipelines.
Open Graphics Library(OpenGL) is an API used across multiple programming languages and platforms for hardware-accelerated rendering of 2D/3D vector graphics currently developed by the Khronos Group.
Open Computing Language (OpenCL) is an open standard for parallel programming of heterogeneous platforms consisting of CPUs, GPUs, and other hardware accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms.
Vulkan is a modern cross-platform graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. Vulkan is currently in development by the Khronos consortium.
Metal is a low-level GPU programming framework used for rendering 2D and 3D graphics on Apple platforms such as iOS, iPadOS, macOS, watchOS and tvOS.
MoltenVK is an implementation of Vulkan running on iOS and macOS using Apple’s Metal graphics framework.
MoltenGL is an implementation of the OpenGL ES 2.0 API that runs on Apple’s Metal graphics framework.
Mesa 3D Graphics Library is a project began as an open-source implementation of the OpenGL specification. A system for rendering interactive 3D graphics. Mesa ties into several other open-source projects: the Direct Rendering Infrastructure, X.org, and Wayland to provide OpenGL support on Linux, FreeBSD, and other operating systems.
OpenGL ES is the mobile subset of OpenGL. It’s supported on all major mobile platforms, and is also the base for WebGL.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, DSPs, FPGAs and other processors or hardware accelerators.
Vuforia is a comprehensive, scalable enterprise AR platform. Our wide-ranging solution suite ensures that we can provide the right AR technology to every customer based on their business needs.
Vuforia Studio is a tool that allows anyone to create beautiful 3D augmented reality (AR) experiences in a matter of minutes with no coding required.
OpenVX™ is an open-source, royalty-free standard for cross platform acceleration of computer vision applications. OpenVX enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.
openXR is a free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR) collectively known as XR—platforms and devices.
GPUImage framework is a BSD-licensed iOS library that lets you apply GPU-accelerated filters and other effects to images, live camera video, and movies. In comparison to Core Image (part of iOS 5.0), GPUImage allows you to write your own custom filters, supports deployment to iOS 4.0, and has a simpler interface. However, it currently lacks some of the more advanced features of Core Image, such as facial detection.
GPUImage3 is the third generation of the GPUImage framework, an open source project for performing GPU-accelerated image and video processing on Mac and iOS. The original GPUImage framework was written in Objective-C and targeted Mac and iOS, the second iteration rewritten in Swift using OpenGL to target Mac, iOS, and Linux, and now this third generation is redesigned to use Metal in place of OpenGL.
EGL is an interface between Khronos rendering APIs such as OpenGL or OpenVG and the underlying native platform window system.
VDPAU is the Video Decode and Presentation API for UNIX. It provides an interface to video decode acceleration and presentation hardware present in modern GPUs.
VA API is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities for video processing.
XvMC is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU hardware.
AMD Radeon ProRender is a powerful physically-based rendering engine that enables creative professionals to produce stunningly photorealistic images on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
NVIDIA Omniverse is a powerful, multi-GPU, real-time simulation and collaboration platform for 3D production pipelines based on Pixar’s Universal Scene Description and NVIDIA RTX.
Universal Scene Description is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications.
OpenTimelineIO is an interchange format and API for editorial cut information. OTIO is not a container format for media, rather it contains information about the order and length of cuts and references to external media. OTIO includes both a file format and an API for manipulating that format. It also includes a plugin architecture for writing adapters to convert from/to existing editorial timeline formats. It also implements a dependency- less library for dealing strictly with time, opentime.
OpenSubdiv is a set of open source libraries that implement high performance subdivision surface (subdiv) evaluation on massively parallel CPU and GPU architectures. This codepath is optimized for drawing deforming subdivs with static topology at interactive framerates. The resulting limit surface matches Pixar’s Renderman to numerical precision.
Affinity Designer is a professional vector graphics editor used by many industry leading illustrators, designers, and other creatives looking to create high-quality concept art.
Sketch is a professional vector graphics app with a beautiful UI and powerful toolset.
Krita is an open source professional painting program for digital painting and 2D animation.
Vectr is a free graphics software used to create vector graphics easily and intuitively.
Glimpse is a cross-platform raster graphics editor based on the GNU Image Manipulation Program available for Linux, macOS, and Windows. A great tool for making YouTube video thumbnails.
GNU Image Manipulation Program(GIMP) is a cross-platform raster graphics editor based on the GNU Image Manipulation Program(GIMP) available for Linux, macOS, and Windows. A great free alternative for Photoshop.
PhotoGIMP is a simple Patch for GIMP 2.10+ to help all Adobe Photoshop Users feel at home.
Photopea is an advanced online photo editor supporting Adobe Photoshop(PSD), GIMP(XCF), Sketch App(Sketch), Adobe XD(XD) and CorelDRAW(CDR) formats.
Inkscape is an open-source vector graphics editor; it can be used to create or edit vector graphics such as illustrations, diagrams, line arts, charts, logos and complex paintings.
Gthree is a GObject/Gtk+ port of three.js.
FreeCAD is a free and open-source general-purpose parametric 3D CAD modeler and a building information modeling software with finite-element-method support.
Ultimaker Cura is the world’s most popular 3D printing software. Prepare prints with a few clicks, integrate with CAD software for an easier workflow, or dive into custom settings for in-depth control.
Dust3D is a cross-platform open-source modeling software. It helps you create a 3D watertight model in seconds. Use it to speed up your character modeling in game making, 3D printing, and so on.
Goxel is a free and Open Source 3D Voxel Editor.
Sketchfab gives you open-source 3D models ready to view, buy, and download for free.
Developing with SwiftUI in Xcode 12
Swift is Apple’s main programming language for iOS, macOS, watchOS, and tvOS app development. Though, many parts of Swift will be familiar to developers from their experience of developing in C and Objective-C.
Swift Evolution maintains proposals for changes and user-visible enhancements to the Swift Programming Language.
Xcode + Swift makes developing applications for MacOS and iOS fast and fun.
Start Developing iOS Apps with Swift
Apple Core Animation Framework
Paravirtualized Graphics Framework
Mac Catalyst - iOS - Human Interface Guidelines
Swift Courses Online from Coursera
Swift Courses Online from Udemy
Learning Swift course from Codecademy
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode 12 is built as an Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon. It includes a unified macOS SDK that features all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
SwiftUI is a user interface toolkit that provides views, controls, and layout structures for declaring your app’s user interface. The SwiftUI framework provides event handlers for delivering taps, gestures, and other types of input to your application.
UIKit is a framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app.
AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.
ARKit is a set set of software development tools to enable developers to build augmented-reality apps for iOS developed by Apple. The latest version ARKit 3.5 takes advantage of the new LiDAR Scanner and depth sensing system on iPad Pro(2020) to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion.
RealityKit is a framework to implement high-performance 3D simulation and rendering with information provided by the ARKit framework to seamlessly integrate virtual objects into the real world.
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your iOS apps.
Mac Catalyst is a set of Apple APIs that developers can use to rapidly port their iOS apps to Apple Silicon M1 Chip and take full advantage of the new capabilities on the new Apple hardware.
Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.
CocoaPods is a dependency manager for Swift and Objective-C used in Xcode projects by specifying the dependencies for your project in a simple text file. CocoaPods then recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project.
AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages.
Vapor is a web framework for Swift. It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project.
Hero is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit’s cumbersome transition APIs—making custom transitions an easy task for developers.
Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work with remote images in your next app.
Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the iOS, macOS, tvOS & watchOS versions of Realm Swift & Realm Objective-C.
Perfect is a complete and powerful toolbox, framework, and application server for Linux, iOS, and macOS (OS X). It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.
Alamofire is an HTTP networking library written in Swift.
Eureka is an elegant iOS form builder in Swift
Carthage is intended to be the simplest way to add frameworks to your Cocoa application. Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup. Carthage does not automatically modify your project files or your build settings.
ReactiveCocoa is reactive extensions to Cocoa frameworks, built on top of ReactiveSwift.
Objective-C was the primary programming language used for writing software for macOS and iOS until Swift was introduced in 2014. It is a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime.
Google’s Objective-C Style Guide
Objective C Courses on Coursera
Objective-C online course on Udemy
Objective-C for Swift Developers course by David Nutter
Objective-C Essential Training on LinkedIn Learning
Objective-C for Swift Developers on Udacity
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging.
AppKit is a graphical user interface toolkit that contains all the objects you need to implement the user interface for a macOS app such as windows, panels, buttons, menus, scrollers, and text fields, and it handles all the details for you as it efficiently draws on the screen, communicates with hardware devices and screen buffers, clears areas of the screen before drawing, and clips views.
Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set. It’s designed to help you profile your iOS, watchOS, tvOS, and macOS apps, processes, and devices in order to better understand and optimize their behavior and performance.
CocoaPods is a dependency manager for Swift and Objective-C in your Xcode projects by specifying the dependencies for your project in a simple text file. CocoaPods then recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project.
AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages.
Realm is a mobile database(replaces Core Data & SQLite) that runs directly inside phones, tablets or wearables.
Infer is a static analysis tool for Java, C++, Objective-C, and C.
Mantle is a model framework that makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application.
Quick is a behavior-driven development framework for Swift and Objective-C.
Aspects is a simple library for aspect oriented programming in Objective-C and Swift.
Hammerspoon is a tool for powerful automation for macOS that acts as a bridge between the operating system and a Lua scripting engine.
Nimbus is an iOS framework whose feature set grows only as fast as its documentation.
C++ is a cross-platform language that can be used to build high-performance applications developed by Bjarne Stroustrup, as an extension to the C language.
C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It supports structured programming, lexical variable scope, and recursion, with a static type system. C also provides constructs that map efficiently to typical machine instructions, which makes it one was of the most widely used programming languages today.
Embedded C is a set of language extensions for the C programming language by the C Standards Committee to address issues that exist between C extensions for different embedded systems. The extensions hep enhance microprocessor features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. This makes Embedded C the most popular embedded software language in the world.
C & C++ Developer Tools from JetBrains
Open source C++ libraries on cppreference.com
C++ Tools and Libraries Articles
Introduction C++ Education course on Google Developers
C and C++ Coding Style Guide by OpenTitan
Learn C : An Interactive C Tutorial
C++ Online Training Courses on LinkedIn Learning
Learn C Programming Online Courses on edX
Learn C++ with Online Courses on edX
Coding for Everyone: C and C++ course on Coursera
C++ For C Programmers on Coursera
Basics of Embedded C Programming for Beginners on Udemy
C++ For Programmers Course on Udacity
C++ Fundamentals Course on Pluralsight
Introduction to C++ on MIT Free Online Course Materials
Introduction to C++ for Programmers | Harvard
Online C Courses | Harvard University
Visual Studio is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.
Vcpkg is a C++ Library Manager for Windows, Linux, and MacOS.
ReSharper C++ is a Visual Studio Extension for C++ developers developed by JetBrains.
AppCode is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages. All code inspections are run on the fly.
CLion is a cross-platform IDE for C and C++ developers developed by JetBrains.
Code::Blocks is a free C/C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. Built around a plugin framework, Code::Blocks can be extended with plugins.
CppSharp is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem. It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed scripting support to a native codebase.
Conan is an Open Source Package Manager for C++ development and dependency management into the 21st century and on par with the other development ecosystems.
High Performance Computing (HPC) SDK is a comprehensive toolbox for GPU accelerating HPC modeling and simulation applications. It includes the C, C++, and Fortran compilers, libraries, and analysis tools necessary for developing HPC applications on the NVIDIA platform.
Thrust is a C++ parallel programming library which resembles the C++ Standard Library. Thrust’s high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies such as CUDA, TBB, and OpenMP integrates with existing software.
Boost is an educational opportunity focused on cutting-edge C++. Boost has been a participant in the annual Google Summer of Code since 2007, in which students develop their skills by working on Boost Library development.
Automake is a tool for automatically generating Makefile.in files compliant with the GNU Coding Standards. Automake requires the use of GNU Autoconf.
Cmake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice.
GDB is a debugger, that allows you to see what is going on `inside’ another program while it executes or what another program was doing at the moment it crashed.
GCC is a compiler Collection that includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages.
GSL is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.
OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.
Libtool is a generic library support script that hides the complexity of using shared libraries behind a consistent, portable interface. To use Libtool, add the new generic library building commands to your Makefile, Makefile.in, or Makefile.am.
Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
TAU (Tuning And Analysis Utilities) is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements as well as event-based sampling. All C++ language features are supported including templates and namespaces.
Clang is a production quality C, Objective-C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM (other targets may have caveats, but are usually easy to fix). Clang is used in production to build performance-critical software like Google Chrome or Firefox.
OpenCV is a highly optimized library with focus on real-time applications. Cross-Platform C++, Python and Java interfaces support Linux, MacOS, Windows, iOS, and Android.
Libcu++ is the NVIDIA C++ Standard Library for your entire system. It provides a heterogeneous implementation of the C++ Standard Library that can be used in and between CPU and GPU code.
ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It’s widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface that makes it easy to respond to the recognition of phrases of interest.
Oat++ is a light and powerful C++ web framework for highly scalable and resource-efficient web application. It’s zero-dependency and easy-portable.
JavaCPP is a program that provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact with assembly language.
Cython is a language that makes writing C extensions for Python as easy as Python itself. Cython is based on Pyrex, but supports more cutting edge functionality and optimizations such as calling C functions and declaring C types on variables and class attributes.
Spdlog is a very fast, header-only/compiled, C++ logging library.
Infer is a static analysis tool for Java, C++, Objective-C, and C. Infer is written in OCaml.
Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.