WaveFunctionCollapse
PowerToys
Our great sponsors
WaveFunctionCollapse | PowerToys | |
---|---|---|
99 | 713 | |
22,675 | 104,153 | |
- | 1.5% | |
4.8 | 9.8 | |
5 days ago | 3 days ago | |
C# | C# | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
WaveFunctionCollapse
- I use Wave Function Collapse to create levels for my game (2022) [video]
-
It's Okay to Make Something Nobody Wants
Thank you! And yes, I agree. I was looking at uh https://github.com/mxgmn/WaveFunctionCollapse and wondering if that were applicable here :)
Have a good day!
- The Wavefunction Collapse Algorithm
-
Kullback–Leibler Divergence
Intuitively, it measures the difference between two probability distributions. It's not symmetric, so it's not quite that, but in my opinion, it's good intuition.
As motivation, say you're an internet provider, providing internet service to a business. You naturally want to save money, so you perhaps want to compress packets before they go over the wire. Let's say the business you're providing service to also compresses their data, but they've made a mistake and do it inefficiently.
Let's say the business has, incorrectly, determined the probability distribution for their data to be $q(x)$. That is, they assign probability of seeing symbol $x$ to be $q(x)$. Let's say you've determined the "true" distribution to be $p(x)$. The entropy, or number of bits, they expect to transmit per packet/symbol will be $-\sum p(x) lg(q(x))$. Meaning, they'll compress their stream under the assumption that the distribution is $q(x)$ but the actually probability of seeing a packet, $x$, is $p(x)$, which is why the term $p(x) lg(q(x))$ shows up.
The number of bits you're transmitting is just $-\sum p(x) lg(p(x))$. Now we ask, how many bits, per packet, is the savings of your method over the businesses? This is $-\sum p(x) lg(q(x)/p(x))$, which is exactly the Kullback-Leibler divergence (maybe up to a sign difference).
In other words, given a "guess" at a distribution and the "true" distribution, how bad is it between them? This is the Kullback-Leibler distribution and why it shows up (I believe) in machine learning and fitness functions.
As a more concrete example, I just ran across a paper talking [0] about using WFC [1] to asses how well it, and other algorithms, do when trying to create generative "super mario brothers" like levels. Take a 2x2 or 3x3 grid, make a library of tiles, use that to generate a random level, then use the K-L divergence to determine how well your generative algorithm has done compared to the observed distribution from an example image.
-
All of it under the most poorly designed and maintained village
Reminds me of wave function collapse - a programmatic way to generate mazes.
-
How to detect and fix isolated terrain (islands or lakes) in a tile-based terrain?
I am using WFC to generate the terrain, with pretty much a copy-paste implementation of the original WFC implemented into Unity.
-
How to make wfc or post-gen script in blender?
If you still want to go the WFC route, the original WFC repository is a great place to start. There's also a (relatively barebones looking) Godot plugin you could take a look at.
- Wave Function Collapse
-
collapsed
wave function collapse studies - this is done with the https://github.com/mxgmn/WaveFunctionCollapse algorithm after I saw https://github.com/CodingTrain/Wave-Function-Collapse mention it. done in P5! IG https://www.instagram.com/ronivonu/
-
Room Generation Using Constraint Satisfaction
There’s an interesting approach similar to this called [Wave Function Collapse](https://github.com/mxgmn/WaveFunctionCollapse) (no relation to wfc in physics idea besides inspiration). It can infer the probabilistic constraints from one input example, and it seems to generalize quite well. Here’s a [little demo](https://oskarstalberg.com/game/wave/wave.html)
PowerToys
-
Unlock Web Dev Superpowers with PowerToys
Windows PowerToys GitHub Repo
-
We released a new powerful efficiency tool called RunFlow, which is similar to PowerToys and Alfred, welcome to try it
RunFlow is a cross-platform productivity tool which can launch apps and search files and more, that similar to Wox and PowerToys on Windows, and also similar like Alfred and Raycast on macOS. But we have differences with these tools, and we have our own unique new features. Right now, at the below, we will introduce you what features of RunFlow have been implemented in more details. It's an amazing journey, let's start.
-
GTK: On fractional scales, fonts and hinting
I'm curious - when you were doing research into the mechanics of hinting options, did you stumble onto any relevant discussion around allowing custom pixel geometries to be defined, to enable hinting on modern OLED / WRBG displays? There's a good thread on the topic here[0], with some people referring to it as 'ClearType 2' on the MS side [1]. On the oss side I know FreeType theoretically supports this[2], but I can't quite figure out how relevant the FreeType backend is to this most recent work.
This is great work btw.
[0]: https://github.com/snowie2000/mactype/issues/932
[1]: https://github.com/microsoft/PowerToys/issues/25595
[2]: https://freetype.org/freetype2/docs/reference/ft2-lcd_render...
-
Ask HN: Cleanest way to manage Windows OS?
Thank you all for the informative advices. Here is the summary for those who are in the same situation:
1. Run Windows on Linux by using VM
for the applications you can’t run on Linux
Risks:
* some softwares may attempt to detect VMs and refuse running
* Anything what needs to touch hardware may not work.
2. separate "data" partition on D:
3. back up %APPDATA% and %USERPROFILE%
4. learn chocolatey, scoop or winget
Winget should be good enough
5. Don’t worry about C:\Program Files
6. (Mixed) Use/Don’t use Ansible (or saltstack/salt)
Use:
* Allows you to setup a new machine quickly and consistently when one breaks, get stolen, or lost in an inconvenient time.
* You can get a clean and consistent development environment so that you do not depend on anything accidentally installed on the machine.
* If you define specialised roles, create test playbooks for those individual roles, use these roles to compose more complex playbooks, and offload logic to custom ansible modules that are written in python, you won't wrestle with heavy logic in the template or playbook layer.
* installing software and pulling some configs and scripts down is fine
Don’t use:
* You will spend your days fighting a mix of yaml and Jinja.
* You will end up looking at Python errors because there are no static types.
* errors are cryptic.
7. Use WSL2
You need 32gb of ram, but ram is cheap so choose a good thinkpad
8. Debloat with Recommended Tweaks
Run
irm christitus.com/win | iex
from Administrator Terminal (Powershell)
The link leads to https://raw.githubusercontent.com/ChrisTitusTech/winutil/mai...
VirusTotal
https://www.virustotal.com/gui/file/709834b0e003b6bb546cf16e...
9. Get [PowerToys](https://github.com/microsoft/PowerToys)
10. Use Devbox for containered environment
11. Dual-Booting Linux and Windows
If you use physically separated drives, you don’t need partitioning.
12. Dedicated Windows machine for class
Yes it sure would be the cleanest solution but I prefer one device for everything
13. keep a git repository with all dot files in it
Many people suggested me to use virtualization, otherwise just let Windows be Windows.
Also, backing up seems to be a good practice.
I’m planning to write a blog about this, if it worked.
Again, thank you all for the helps!
- Ask HN: Best Hacks for a Ultrawide Monitor?
-
Keypirinha: A fast launcher for keyboard ninjas on Windows
Powertoys Run (https://github.com/microsoft/powertoys) can do this. There are not that many plugins as Alfred but Window Switcher is built-in.
-
LAN Mouse is a mouse and keyboard sharing software
For sharing a mouse/keyboard between Windows PCs, there is Mouse Without Borders. It's included in PowerToys nowadays.
-
Hrvach/Deskhop: Fast Desktop Switching Device
- https://github.com/microsoft/PowerToys
-
How do I type letters with accent marks?
If you’re on Windows, download PowerToys. It’s an app published by Microsoft officially. Then enable Quick Accent in the settings of PowerToys. Now all you have to do is hold down the key you want accented until the switch shows up, then add an accent with your arrow keys.
-
Microsoft's Powertoys Key Manager now can paste text and unicode by shortcuts
microsoft/PowerToys: Windows system utilities to maximize productivity (github.com)
What are some alternatives?
eShopOnContainers - Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. Moved to https://github.com/dotnet/eShop.
Wox - A cross-platform launcher that simply works
Raylib-cs - C# bindings for raylib, a simple and easy-to-use library to learn videogames programming
AutoHotkey - AutoHotkey - macro-creation and automation-oriented scripting utility for Windows.
OpenFK - An open source replacement for the U.B. Funkeys executable.
sharpkeys - SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key.
DeBroglie - DeBroglie is a C# library implementing the Wave Function Collapse algorithm with support for additional non-local constraints, and other useful features.
Flow.Launcher - :mag: Quick file search & app launcher for Windows with community-made plugins
dnSpy-Unity-mono - Fork of Unity mono that's used to compile mono.dll with debugging support enabled
Fluent-Search - Official repository for Fluent Search, use to report issues or ask for a new feature
texture-synthesis - 🎨 Example-based texture synthesis written in Rust 🦀
T-Clock - Highly configurable Windows taskbar clock