MeteorRain
5th September 2026, 04:17
I'd like to introduce AviSynthMinus, a fork of AviSynth+ based on 3.7.5.
The main reason for this fork is a difference in development and release workflow. Upstream development follows a single master branch without separate release branches, so fixes, new features, and larger changes accumulate on the same development line. Combined with the long intervals between releases, this makes it difficult to ship a conservative set of fixes independently of ongoing feature development.
I would prefer to maintain separate stable and mainline branches, allowing fixes to be released sooner while larger changes continue to develop separately. This fork is a way for me to put that workflow into practice.
This is not intended as a break with upstream. I plan to continue tracking AviSynth+ development, incorporating relevant fixes, and preserving API and ABI compatibility wherever practical. Compatibility with existing scripts and plugins remains an important goal. Any necessary incompatibility should be an explicit, documented decision rather than an incidental consequence of development.
For features already being developed upstream, my intention is to let upstream complete that work and then incorporate it here, rather than develop a competing, incompatible implementation. The ongoing AVX-512 work is one example: I do not plan to create a separate, incompatible counterpart in this fork.
Engineering and testing
My focus is on improving the project from an engineering perspective, not just adding features. The automated tests here were ported from AviSynthPlus-UT (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthPlus-UT), a test suite I originally wrote for upstream AviSynth+ that has already helped uncover a number of bugs.
The currently enabled suite contains over 400 test definitions, covering core and scripting behavior, audio and video conversion, filters, scalar/SIMD consistency, and regression cases. I intend to build on this work to make changes easier to verify and regressions easier to catch.
Development here is a collaboration between me and AI. I provide substantial guidance, set the technical direction, and review changes; GPT-6 handles implementation, test writing, and additional code review on its own initiative. This applies to both bug fixes and new features. I remain responsible for what is accepted and released.
I would be happy to see fixes from this fork incorporated upstream. Given upstream's stated reservations about AI-assisted code, I do not plan to submit these changes there myself. Upstream maintainers are welcome to take relevant fixes, and other developers are welcome to propose them upstream if the maintainers have explicitly indicated that such contributions are acceptable. Any such contribution should preserve attribution and be transparent about its origin and the use of AI.
Project direction
For now, development is driven by me personally. Contributions and technical discussions are welcome, and anyone interested in longer-term involvement can also discuss joining our GitHub organization. The project will follow a benevolent dictator model: discussion is open, but I retain final responsibility and decision-making authority over its direction and releases.
This will be a project with a strong personal direction, rather than an attempt to preserve every inherited convention. I may make substantial changes where I believe they serve the project's goals. Feedback and technical objections are welcome, but I will not try to accommodate every conflicting preference or require consensus for every decision. Compatibility matters, but it does not mean freezing the implementation or ruling out architectural changes.
Possible future directions include moving SIMD implementations to Highway and exploring an additional ABI, currently called CX1, for cross-toolchain interoperability while retaining support for existing plugins. These are development directions, not commitments for the current release.
Releases
The plan is to maintain two release lines, distinguished by the minor version number:
Stable — even minor versions, like 1.2.0: focused on fixes and conservative changes.
Mainline — odd minor versions, like 1.1.0: where new features and larger internal changes are introduced and tested.
The current 0.1.1 prerelease is the starting point. The two-line structure will develop from there.
I expect releases to be relatively small and frequent, rather than waiting for a large collection of changes. Multiple releases within a month are possible when there are useful fixes to ship. This is not a fixed schedule or a promise of immediate fixes; development currently depends on my available time.
There is also no guarantee that the project will remain actively maintained indefinitely. I may pause or discontinue development for any reason, including changes in personal circumstances, loss of interest, harassment or personal attacks, or changes in upstream's development and release practices that make this fork unnecessary. Constructive disagreement is welcome, but maintaining the project does not imply an obligation to accept personal abuse or continue working on it indefinitely.
Trying 0.1.1
The initial prerelease includes fixes carried over from upstream development, along with additional fixes found through testing. Builds are available for several platforms, but runtime testing varies by platform.
The Windows installer is currently a mod installer over an existing official AviSynth+ 3.7.5 installation. Files-only packages are also available.
GitHub repository (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthMinus)
0.1.1 prerelease and downloads (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthMinus/releases/tag/0.1.1)
Feedback, reproducible bug reports, and compatibility reports are welcome.
Windows ARM64 is built by MSVC with MSVC C++ ABI.
Windows XP support is experimental, as I don't have such environment to verify.
The main reason for this fork is a difference in development and release workflow. Upstream development follows a single master branch without separate release branches, so fixes, new features, and larger changes accumulate on the same development line. Combined with the long intervals between releases, this makes it difficult to ship a conservative set of fixes independently of ongoing feature development.
I would prefer to maintain separate stable and mainline branches, allowing fixes to be released sooner while larger changes continue to develop separately. This fork is a way for me to put that workflow into practice.
This is not intended as a break with upstream. I plan to continue tracking AviSynth+ development, incorporating relevant fixes, and preserving API and ABI compatibility wherever practical. Compatibility with existing scripts and plugins remains an important goal. Any necessary incompatibility should be an explicit, documented decision rather than an incidental consequence of development.
For features already being developed upstream, my intention is to let upstream complete that work and then incorporate it here, rather than develop a competing, incompatible implementation. The ongoing AVX-512 work is one example: I do not plan to create a separate, incompatible counterpart in this fork.
Engineering and testing
My focus is on improving the project from an engineering perspective, not just adding features. The automated tests here were ported from AviSynthPlus-UT (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthPlus-UT), a test suite I originally wrote for upstream AviSynth+ that has already helped uncover a number of bugs.
The currently enabled suite contains over 400 test definitions, covering core and scripting behavior, audio and video conversion, filters, scalar/SIMD consistency, and regression cases. I intend to build on this work to make changes easier to verify and regressions easier to catch.
Development here is a collaboration between me and AI. I provide substantial guidance, set the technical direction, and review changes; GPT-6 handles implementation, test writing, and additional code review on its own initiative. This applies to both bug fixes and new features. I remain responsible for what is accepted and released.
I would be happy to see fixes from this fork incorporated upstream. Given upstream's stated reservations about AI-assisted code, I do not plan to submit these changes there myself. Upstream maintainers are welcome to take relevant fixes, and other developers are welcome to propose them upstream if the maintainers have explicitly indicated that such contributions are acceptable. Any such contribution should preserve attribution and be transparent about its origin and the use of AI.
Project direction
For now, development is driven by me personally. Contributions and technical discussions are welcome, and anyone interested in longer-term involvement can also discuss joining our GitHub organization. The project will follow a benevolent dictator model: discussion is open, but I retain final responsibility and decision-making authority over its direction and releases.
This will be a project with a strong personal direction, rather than an attempt to preserve every inherited convention. I may make substantial changes where I believe they serve the project's goals. Feedback and technical objections are welcome, but I will not try to accommodate every conflicting preference or require consensus for every decision. Compatibility matters, but it does not mean freezing the implementation or ruling out architectural changes.
Possible future directions include moving SIMD implementations to Highway and exploring an additional ABI, currently called CX1, for cross-toolchain interoperability while retaining support for existing plugins. These are development directions, not commitments for the current release.
Releases
The plan is to maintain two release lines, distinguished by the minor version number:
Stable — even minor versions, like 1.2.0: focused on fixes and conservative changes.
Mainline — odd minor versions, like 1.1.0: where new features and larger internal changes are introduced and tested.
The current 0.1.1 prerelease is the starting point. The two-line structure will develop from there.
I expect releases to be relatively small and frequent, rather than waiting for a large collection of changes. Multiple releases within a month are possible when there are useful fixes to ship. This is not a fixed schedule or a promise of immediate fixes; development currently depends on my available time.
There is also no guarantee that the project will remain actively maintained indefinitely. I may pause or discontinue development for any reason, including changes in personal circumstances, loss of interest, harassment or personal attacks, or changes in upstream's development and release practices that make this fork unnecessary. Constructive disagreement is welcome, but maintaining the project does not imply an obligation to accept personal abuse or continue working on it indefinitely.
Trying 0.1.1
The initial prerelease includes fixes carried over from upstream development, along with additional fixes found through testing. Builds are available for several platforms, but runtime testing varies by platform.
The Windows installer is currently a mod installer over an existing official AviSynth+ 3.7.5 installation. Files-only packages are also available.
GitHub repository (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthMinus)
0.1.1 prerelease and downloads (https://github.com/HomeOfAviSynthPlusEvolution/AviSynthMinus/releases/tag/0.1.1)
Feedback, reproducible bug reports, and compatibility reports are welcome.
Windows ARM64 is built by MSVC with MSVC C++ ABI.
Windows XP support is experimental, as I don't have such environment to verify.