Compute shader blur. textureHeight - The height of the input texture.

Compute shader blur. So the average of each pixel offset was completly wrong.
Compute shader blur On the downside this doesn’t look particularly good and both quality and performance decrease drastically with an increasing blur Aug 26, 2016 · Hi,   I was just looking at doing a blur compute shader and took a look at the Hieroglyph 3 implementations for inspiration, however, I'm confused as to why the blur shaders never guard against writing/reading outside of the UAV when the input image is larger than the threadgroup, is it safe Jan 7, 2025 · Shader code // A Gaussian blur shader for Godot 4. Before you start; About Godot Engine Generating accumulation motion blur with FFmpeg; Assets pipeline SimpleImageEditShader: use Textures to implement image blur effect and visualize the result image on a game object with a material; All of them are implemented with RDG, which is a powerful and convenient tool in low-level UE graphic programming. e. com Image shaders: fragColor is used as output channel. It basically works, however it contains artifacts which change every frame even when the scene is static. Aug 13, 2023 · Compute Shader. A render pipeline which takes the result of the compute pipeline and creates the final composition by rendering a fullscreen triangle (js/composite. Optimized Gaussian blur function with configurable sigma and radius. A compute shader is a special t About. Aug 15, 2021 · Compute Shader를 활용한 image blur. Jun 21, 2020 · A post was merged into an existing topic: How can the following Gaussian blur shader be modified to compute shader? Mar 13, 2010 · The offset for the center point needs to be carefully aligned to texel center (the off-by-0. Reflection denoiser – Designed to remove noise from the results of tracing jittered reflection rays based on surface roughness. I can't use mipmaps. The need to blur this or that can come up quite often as you try to obtain a particular look or perform some technique like motion blur. Jul 31, 2016 · @derhass: i was imagining something like processing a 64x64 tile with one work group, (iteratively, not one thread per texel), and then writing 32x32 texels to level 1 AND to shared memory, then compute 16x16 texels of level 2, and 8x8 to level 3. 0}) Jun 29, 2023 · I've written a Metal compute shader that: accepts a 2-D metal texture writes to two metal textures one with vertical motion blur one with horizontal motion blur implementation: constexpr sampler s( I'm currently working a lot with compute shaders for different algorithms. You can use the effect in many places, but the easiest and most straightforward is probably as a postprocessing effect, so it’s best for you to know how to write postprocessing effects before doing this tutorial. (e. Play around with sigma and radius values to find the optimal parameters. It's pretty simple, just draws a texture onto a quad. I now need to be able to update the pixels in this texture from a compute shader. I've spent the past few hours trying to debug this. While the compute shader is more flexible than using pixel shaders for GPGPU programming, writing optimized compute shaders can be more difficult and requires some consideration of the underlying hardware. and just keep blurring back and forth until the desired intensity is achieved. 마치 vertex shader, fragment shader에서 파이프라인이 각 vertex, pixel에 대해 병렬적으로 GPU에서 실행되듯이, compute shader는 지정한 연산을 병렬적으로 실행합니다. This is a Gaussian blur implementation I wrote in HLSL, as a compute shader in Unity. The box blur or mean filter algorithm is a simple to implement blurring effect. Nov 17, 2014 · The code sample is built using OpenGL for Windows platform and OpenGL ES for Android platform (NDK) and demonstrates Gauss, Kawase and Moving Averages (Compute Shader) blur filters, and provides benchmarking support for each on various kernel sizes and screen resolutions. Usually, this is precomputed as well: Jun 1, 2023 · Gaussian Blur is a useful effect to keep in your arsenal when making games, but Unity doesn't ship with a blur that operates on the whole screen uniformly. Jun 4, 2024 · Hey! I am trying to make a simple compute shader, that modifies a mesh to learn how compute shaders work. Dec 23, 2014 · If so, then you could use a compute shader to access the texture data, perform a blur, and then write the data back to the texture. toml file and a hello world main. Sep 19, 2022 · Now that we have looked at the basics of blurring and image convolution let’s take a look at some of the various types of blur algorithms. A Mar 8, 2017 · On modern GPUs, you should program blur kernels as compute shaders. Therefore, you can effectively sample four 2D pixels with a single prefetch or eight 3D voxels. What I struggle to understand is the temporal ordering of what gets executed when it his compute shader and what textures need to be allocated upfront. 6. 1 Like. Oct 20, 2016 · Using a RWTexture2D you can read and write to a texture in the same shader, but it’s mainly for use with compute shaders, the built in Blit() doesn’t support them, and doing anything but writing to the same single pixel you read from (unlike a blur which reads from many pixels and writes to one) has “undefined” results which basically In this chapter, we learned how to use compute shaders to offload work from the CPU to the GPU. You signed out in another tab or window. This shader computes the 2D Fast Fourier Transform of two complex input matrices contained in a single four-channel floating point (or half float) WebGL texture. Or,in the particular case of a blur filter (Gauss or not), which are all kind of "weighted sums", you can take advantage of texture interpolation, which may be faster for small kernel sizes (but definitively not for Jul 30, 2012 · We compute the full box filter once for the first pixel, then just keep updating it. To calculate the coefficients of a Gaussian blur (separated) kernel, you can use this blur coefficients generator: the WEIGHTS array it creates can directly be used in writeBuffer to communicate it to the compute shader. The “Blur sharpness” slider scales the maximum depth delta between the current pixel and a given sample. Jul 7, 2018 · Vertex shaders were now executing on the same units as pixel shaders, making it possible to balance the workload between vertex and pixel shader work. However, it does not recognize edges, so apply-ing Gaussian blur to an image globally will result in a loss of detail at the edges. So you need 3 steps. May 17, 2015 · You have to get the sweet spot between Texture Size , Gaussian Blur Offset and Speed. I also want it to be separable, which means, that first I perform blur along the horizontal direction, write out the result to the texture, then perform the vertical blur with the horizontally blurred data. Uses canvas stacking in order for this to work. It scales logarithmically, so doubling the blur radius adds only 2 blur passes. mesh Jul 20, 2017 · Im trying to apply the live camera filters through metal using the default MPSKernal filters given by apple and custom compute Shaders. 0. js and js/shader/composite-shader. Returns the blurred pixel color. Hi, I'm working on a multipass compute shader to compute a blurred image. cargo new image-filters. Where compute shader can be faster the the CPU and could be Jul 9, 2015 · Postprocessing implemented in DirectX 11 using Direct Compute. The blur compute shader is dispatched to apply the blur effect to the SSAO result. Bilateral Gaussian, box, radial, directional, motion blur, zoom blur, etc. Apr 21, 2022 · In this post, I'll try to implement Gaussian blur using compute shaders and compare the performance to classic fragment shader-based implementation (spoiler: the results aren't great at all). Short answer is yes, yes they can. GPUで汎用的な並列計算をさせたい際に使えるのがCompute Shaderです。通常の頂点シェーダーやフラグメントシェーダーとは異なり、Compute ShaderはGPUにおけるレンダリングパイプラインから独立しているため、より柔軟でオーバーヘッドの少ない処理を行うことができます。 You signed in with another tab or window. This Godot 4 plugin adds in a ComputeHelper class that keeps track of compute shaders and their uniforms. Since shadow filtering can get away with a linear blur, and I wanted high blur widths, I decided to go for a moving average style blur, where one thread is assigned a row (or column), and moves along it averaging May 24, 2020 · 先上代码地址. I believe I understand the proximate cause: memory locality when accessing textures. I could also maybe downscale it and Name Description; ssbo_sample: Sample that performs parallel operation on a vector of integers using Shader Storage Buffer Objects and workgroups: img_generation / Chapter 13 The Compute Shader / Blur / BlurFilter. The input and output for the compute shader looks like this: //Input and output reso Hey fellow devs, I recently came across this video by Cherno in which he explains roughly how bloom is implemented in Unity and his game engine. Mar 30, 2016 · I think you need to render horizontal and vertical pass separately using shader code such as below but with different direction (See dir uniform variable). UBOs are limited in size, and are often too small for a serious compute workload. g. using unity 2022. Without compute shaders, many effects in modern games and applications would either not be possible or would run a lot slower. However, if you were to change “Gaussian blur” to “Computeshader”, then the title would become “How can the following Computeshader shader be modified to compute shader?” Even if you remove the repeated “shader” word, it still makes no sense. Dec 16, 2016 · I've been trying to write a general compute shader Gaussian blur implemenation. I've currently got my render shader working fine. Informing that a shader is 4x more compute-heavy than the other shader) For displays only: It is actually the only blur that is both separable and circularly symmetric . gl_WorkGroupID, gl_GlobalInvocationID) to index your May 23, 2017 · Then, you bind that texture to a compute shader and save the blur result in some other texture. Blur Busters CRT simulator can do 24fps Netflix to 72Hz simulated CRT on 280Hz LCD) The shader SHOULD be able to inform the subsystem of the approximate workload expected. This method is called before dispatching the blur compute shader. One thing you’ll notice here is that vertex and pixel shaders need to communicate somehow – a decent chunk of memory is needed to store attributes for interpolation, like vertex color. AMD FidelityFX Jan 5, 2025 · (e. I Jul 12, 2024 · A simple render feature and a compute shader to grab the scene color after rendering and downscaling + blurring it for use in UI. 3 shader_type canvas_item; uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; // The radius of the blur effect (number of pixels to blur, NOT USED). I have 3 textures, 1. If you have a Q&A style question about using WebGPU, consider using a GitHub "Discussion". The smaller the texture the smaller your Gaussian Blur Offset needs to be to avoid artifacts on the screen. That works for all separable filters, not just for blur (not all filters are separable, but many are, and some are "as good as"). then either do another dispatch call or do it all the way down to 1x1, depending on what's more efficient. The number of compute shader executions is defined by the function used to execute the compute operation. S. Aug 27, 2018 · To blur the screen we take the average of the surrounding pixels. Below is the PR for changing the URL. Once we determine the world-space position, we can transform it by using the previous frame's view-projection matrix and take the difference in screen position to compute the pixel's velocity, as shown in Listing 27-2. Note that in the sample we are calling dispatchWhenReady() for the first compute shader to be sure the compute effect is ready before going on, but for the next shaders we simply call dispatch() because as they are using the same shader code we are sure the effect will Oct 11, 2008 · The trick for rapid Gaussian blurring with GLSL is to take advantage of the fact that the GPU provides linear interpolation in hardware. Jun 7, 2015 · I get managed to add a compute shader to the custom material shader. I did a lot research about that topic and changed my code many times but finally the Motion Blur effect does not work as intended. h. The blur technique utilized is Gaussian blur. It's fast and gets Aug 24, 2023 · As a way of learning compute shaders, and practicing graphics programming, I’ve been writing a compute based cubemap blur for use in a realtime variance shadow mapping algorithm. 0,0. I read that Gaussian blur can be broken down in passes that could be implemented in pixel shaders, but couldn't find any samples. Saved searches Use saved searches to filter your results more quickly / Chapter 13 The Compute Shader / Blur / BlurApp. This repository contains a two-pass post process blur effect which works with URP's volume system and can be customised to different amounts of blurring. Use npm to install and glslify to consume the function in your shaders. io/blog - lisyarus/compute » New Buffer and View creation flag in SM 5. 最近学了一点OpenGL记录一下,先说下感受,相对于以前的图像或深度学习的算法来说,OpenGL图形没有那么多好用的库可以用,如果想要写一个小东西就需要写非常多的代码,相对来说图像和深度学习前期重点在做实验后期重点在工程落地,而图形则是前期工程就很难,OpenGL里面每一个 2 Efficient Compute Shader Programming Topics Covered in this Talk Direct Compute Overview GPU Architecture Compute Shader Optimization –GPUPerfStudio 2. That presentation from ATI seems to demonstrate a way to compute a SAT on GPU using a vertex and pixel shader only, I'm trying to understand how they did that right now. By: Lord Of Lunacy. Jun 19, 2020 · I have written a deferred renderer that can use either a fragment shader or a compute shader to execute the shading pass. I ran a few tests on my middle aged computer to confirm with the standard Motion Blur effect. Feb 17, 2024 · The “Dual-Kawase” blur is an efficient blur shader which makes use of downscaling and only a few texture samples for a high-quality Gaussian blur. Example 27-2. 3 AMD FidelityFX Denoiser includes specialized spatio-temporal denoisers optimized for specific workloads: Shadow denoiser – Designed to denoise a shadow mask created from tracing jittered rays towards a single light source. Jan 3, 2024 · The shader code and all code snippets in this post are under CC0 license and can be used freely without the author's permission. Sound shaders: the mainSound() function returns a vec2 containing the left and right (stereo) sound channel wave data. Then you can draw the blurred final result as a "full screen quad", basically a 2d rect that covers the entire screen and will have your scene texture on it. Following this guide I faced some issues with texture filtering. I’m sure there are many ways to optimize it. Shader Code That Computes the Per-Pixel Velocity Vectors That Determine the Direction to Blur the Image Compute Shader Blur Using a video element with WebGPU Sorting with WebGPU Compute Shader Flocking Cornell Box rendering WebGPU port of the Animometer MotionMark Instead of using a Gaussian blur, use for example a weighted Poisson disc based blur which does not require as many texture samples. The red and green channels contain the real and imaginary components of the first matrix, while the blue and alpha channels contain the real and imaginary components of the second matrix. Reload to refresh your session. Experiments with OpenGL compute shaders, documented in my blog lisyarus. Box Blur. May 4, 2021 · I've been looking around and it seems that the blur shaders I've found do a sort of flip-flop operation where they blur the image onto a frame buffer, then blur that frame buffer onto the original frame buffer, etc. It sets up textures, parameters, and data needed for the blur computation. Here the images: actual image: blurred with radius Jul 15, 2014 · The code sample is built using OpenGL for Windows platform and OpenGL ES for Android platform (NDK) and demonstrates Gauss, Kawase and Moving Averages (Compute Shader) blur filters, and provides benchmarking support for each on various kernel sizes and screen resolutions. AMD FidelityFX™ Depth of Field (DoF) AMD FidelityFX Depth of Field is an AMD RDNA™-architecture optimized implementation of physically correct camera-based depth of field. OnRenderImage Method: This method is automatically called by Unity during the rendering process. 5 –Code Example: Gaussian Blur Ambient Occlusion Depth of Field I created a single pass gaussian blur using HLSL compute shader. It might not look exactly the same, but it still looks great and can generally done with n2 (vs n²) samples. Once you wrap your head around how compute shaders work, they also make a lot more sense in many cases. Top. This is typically not desired. Generate a vertex shader that computes the box blur from a Summed Area Table texture. – Optimized blur for Unity using compute shaders. Apr 10, 2017 · I'm used to doing image processing like blurring with fragment shaders, but I want to avoid the extra code necessary to set up rendering of a full-screen quad now by using compute shaders instead. In compute shader I did the inplace encoding with the MPSImageGaussianBlur and the code goes here FidelityFX Denoiser 1. Dec 14, 2024 · You could take a viewport and get it’s texture. Introduction Gaussian filtering is very effective at reducing noise globally. It is similar in spirit to paraLLEl-RDP, with different implementation trade-offs. , retain the accuracy of a CPU software renderer while The WebGPU Samples are a set of samples demonstrating the use of the WebGPU API. js and js/shader/rd-compute-shader. Blame. Compute shader has access to groupshared memory, a fast on-chip memory per compute unit (64 KB per CU on AMD GPUs). Current scene frame and depthbuffer is rendered into two texture samplers. Retrieve the resulting image and save it to disk. What can be done with compute shader? Basically you can calculate everything in a compute shader, but a compute shader can’t directly render the image to the screen. 3. A couple of dependencies Let's start with creating a new project. Unfortunately, the compute shader implementation runs slower. This shader file has a few key parts: the name of the shader is PostProcessing/Blur, then we have the Properties block which contains all the information we send to the shader and the SubShader that includes most of the code. The method used is a 2D full-screen post-process that works on a normal framebuffer augmented with a screen-space velocity buffer; thus, filtering performance is not dependent on scene geometric complexity. Tips: Computer Shader 也可以使用硬件的线性插值,上面代码 cache 的是单个 texel 的值,硬件的线性插值不适用于上面代码。 Blur compute shader This is a direct port of the WebGPU sample imageBlur . I was working on a bloom effect and ran into a weird issue. Replace the sigma and radius parameters with literal values to let the Unity shader compiler produce efficient code. The canvas that uses the blurring effect needs a lower sorting order than the other canvases in the scene. 0 » Allows a buffer to be viewed as array of typeless 32-bit aligned values » Exception: Structured Buffers » Buffer must be created with flag Apr 18, 2016 · Ha, yes, that's what I feared. Remember this is an odd-sized // box filter kernel. Jul 15, 2014 · Effectively, I was sending the bad viewport as uniform variable to my gaussian blur shader (it was always set to my original window resolution -> 1024*720). In general, I've found that compute shaders can be much faster than their equivalent pixel shader or transform feedback based alternatives. The debug view shows the depth buffer on the left (flipped and scaled a bit to make it more visible), the normal G buffer in the middle, and the albedo G-buffer on the right side of the screen. May 22, 2010 · Using DirectCompute and compute shaders could they out perform a CPU by enough of a margin to make dealing with the extra dependencies worthwhile. 5 problem). It is not, for now, mandatory but recommended to leave the alpha channel to 1. –. May 1, 2024 · A compute pipeline which runs multiple iterations of the reaction-diffusion algorithm (js/rd-compute. It explains how compute shaders are dispatched and how the hardware schedules the actual work across the available compute units. radius - The radius of the box blur; that is to say, the box around the pixel will be of size (2*radius+1)X(2*radius+1). The blur amount should be changeable. textureWidth - The width of the inputtexture. github. private void OnRenderImage(RenderTexture source, RenderTexture destination) { Graphics. in any way, there shouldn't be any Sep 30, 2023 · This example shows how to blur an image using a WebGPU compute shader. Find doesn’t count as referencing it, so inside the Resources folder it goes. Nov 14, 2020 · I'm using libgdx and want to make a common Gaussian blur post-processing effect. Optimized blur for Unity using compute shaders with some examples. We also update light position in a compute shader, where further operations like tile/cluster culling could happen. File metadata and controls. 10f1 on an m1 Mac. cpp. The workgroup size determines how many workgroups can be executed on the hardware at the same time. It's really fast and takes about 1ms in the rendering thread and can blur in a much wider radius. The scene is rendered into texture only one time in a frame then the texture generated is processed by compute shader to create blur and bloom effect. cx20 September 30, 2023, 8:40pm 2. I'd like to use compute shaders, but they're not part of OpenGL ES 2. GetData() but this returns a black/empty texture because (I think) the buffer will only be done after a frame update which only happens in editor Dec 13, 2016 · Thanks, had assumed r32f would suffice, although in hindsight GL_DEPTH_COMPONENT32F is automatically normalised based on the viewport (which isn't available in compute shaders). P. So the average of each pixel offset was completly wrong. Works only for devices supporting compute shaders. After using Shader. But even more than graphics, compute has a lot of use-cases, and this chapter only gives you a glimpse of what's possible. rs file. All the code for this post is available at this repository . Here's a simple example of a shader that reads and then writes to a texture, making it grayscale (ideally in the render thread Gaussian Blur Compute Shader for ReShade. Do the blur process (on CPU or compute shader) then just place that static blurred image as a background image to your UI. With groupshared memory, you don't need to load/sample the blur neighborhood again and again for each pixel. Also, the hardware bilinear filter can be used to cheaply increase the amount of blur (by sampling between texels). 1. The compute shader related parts are implemented in C++ in CS_Plugin plugin. That's a shame. You switched accounts on another tab or window. That would have been convenient. Contribute to G4ND44/computeShaderBlur development by creating an account on GitHub. It using OpenGL Wrapper (bgl) and Python OpenGL Wrapper for the functions that are missing in bgl. Here is what I have so far: using UnityEngine; public class MeshEdit : MonoBehaviour { [SerializeField] private ComputeShader ComputeShader; public Mesh InputMesh; public MeshFilter Filter; private Mesh OutputMesh; private void Start() { OutputMesh = Instantiate(InputMesh); Filter. This would be done in regions with a thread-group for each area, tiled across the entire texture. Most important of all, compute shaders have no user-defined inputs and no outputs at all. The rest of the shader scales the samples by their distance. paraLLEl-GS emulates the PlayStation 2 Graphics Synthesizer using Vulkan compute shaders. Historically, textures. It uses groupshared memory, which might speed up the processing. Full-screen blurring and light bloom effects are implemented. 3D Game Shaders For Beginners Blur. Ported code samples in "Introduction to 3D Game Programming with DirectX 11" - lucypero/FrankLuna-DX11-Book-Code Apr 22, 2019 · The "space" that a compute shader operates on is largely abstract; it is up to each compute shader to decide what the space means. Render scene to texture A using default shader; Render texture A to texture B using gaussion blur shader horizontally (dir={1. Blurs the image from the specified uv coordinate, using the given resolution (size in pixels of screen) and direction -- typically either [1, 0] (horizontal) or [0, 1] (vertical). eral grid construction and various operations via compute shaders. The talk will also cover important aspects to consider when writing compute shaders, such as efficient use of the caches, thread communication, and scalarization. Dispatch(), I’m trying to use Buffer. for input, Oct 14, 2015 · Hello Community, I am going to extend my 3D-Engine with a Motion Blur effect. Feb 11, 2022 · Apply a compute shader to calculate a grayscale version of it. Jun 19, 2020 · I don’t know why you can’t edit the topic, nor do I know how to fix that. A heavily optimized gaussian blur with 3 different kernel sizes, and wrote in a way that it could. I haven't had yet time to benchmark it against exact same blur without the groupshared memory implementation. Jan 4, 2020 · Would be nice if someone can point me to sources for fast (for a Game) GLSL Shader for post-processing Blur effect. This parameter should be increased if the blur filter is making the AO bleed across object silhouettes. uniform int blur_radius : hint_range(1, 32) = 8; // Controls the intensity of the blur. Pixel velocity only considers camera Feb 14, 2020 · I’m working on a tool for the editor in which you can take a sprite and it blurs it for you. I know how to use Google and Shadertoy, but it's much efficient to get some pointers from devs with direct experience. A lot have changed but I recently made a gaussian blur post effect using Compute Shader and I think it's a lot better than the Gaussian blur Unity URP provides. js). Below are just some of ways you can blur your game's imagery. Images and videos, and assets depicted in those, do not fall under this license. Introduction. Or you could try and do some performance optimizations on your blur. Jun 1, 2023 · Using Shader. Box blur: Simple to implement, runs pretty fast with small kernel sizes. Returns the vertex shader as a string. The “Compute-shader HBAO” and “Pixel-shader HBAO” radio buttons are for Aug 26, 2016 · Hi, I was just looking at doing a blur compute shader and took a look at the Hieroglyph 3 implementations for inspiration, however, I'm confused as to why the blur shaders never guard against writing/reading outside of the UAV when the input image is larger than the threadgroup, is it safe to do this? Aug 6, 2012 · Compute Shader Implementation Details. Therefore i want to compute the pixel screen-velocity in a compute shader. As always, this will create a new Rust project, including a Cargo. The end goal is to be a no-compromises PS2 graphics emulation, i. Here’s some pseudo-code: // Compute box-filtered version of x with a (2*r+1)-tap filter, // ignoring boundary conditions. . This sample shows a filtering method for simulating motion blur of fast-moving objects. float scale = 1. Nowadays, there are SSBOs (shader storage buffer objects) which are basically raw-buffer-backed uniforms that can store as much data as any other general buffer or texture (a lot), and then you can use the built-in invocation data (e. textureHeight - The height of the input texture. Code. The larger your texture the larger the larger the Gaussian Blur Offset can be but the slower the shader. #define GAUSSIAN_BLUR_UNROLL 1 before including this file. I found a project where someone does something similar, but the buffers he uses in his compute shader don't appear to be textures. Aug 5, 2017 · I have a compute shader which task is to take an input image and then blur it using a Gaussian filter approach. github. I’m using a compute shader with buffer approach to blur it but blur requires multiple passes. I'm trying to understand why. AMD FidelityFX Denoiser is a set of denoising compute shaders which remove artefacts from reflection and shadow rendering. 0f / (2*r + 1); // or use fixed point // Compute sum at first pixel. So I'll need to create my depth/shadow map as a color attachment in order to blur it with a computer shader. uxzn ujhm ujno iqyvb wvxpa nryaf mfppqk mhgw vumhj daudetfb
{"Title":"What is the best girl name?","Description":"Wheel of girl names","FontSize":7,"LabelsList":["Emma","Olivia","Isabel","Sophie","Charlotte","Mia","Amelia","Harper","Evelyn","Abigail","Emily","Elizabeth","Mila","Ella","Avery","Camilla","Aria","Scarlett","Victoria","Madison","Luna","Grace","Chloe","Penelope","Riley","Zoey","Nora","Lily","Eleanor","Hannah","Lillian","Addison","Aubrey","Ellie","Stella","Natalia","Zoe","Leah","Hazel","Aurora","Savannah","Brooklyn","Bella","Claire","Skylar","Lucy","Paisley","Everly","Anna","Caroline","Nova","Genesis","Emelia","Kennedy","Maya","Willow","Kinsley","Naomi","Sarah","Allison","Gabriella","Madelyn","Cora","Eva","Serenity","Autumn","Hailey","Gianna","Valentina","Eliana","Quinn","Nevaeh","Sadie","Linda","Alexa","Josephine","Emery","Julia","Delilah","Arianna","Vivian","Kaylee","Sophie","Brielle","Madeline","Hadley","Ibby","Sam","Madie","Maria","Amanda","Ayaana","Rachel","Ashley","Alyssa","Keara","Rihanna","Brianna","Kassandra","Laura","Summer","Chelsea","Megan","Jordan"],"Style":{"_id":null,"Type":0,"Colors":["#f44336","#710d06","#9c27b0","#3e1046","#03a9f4","#014462","#009688","#003c36","#8bc34a","#38511b","#ffeb3b","#7e7100","#ff9800","#663d00","#607d8b","#263238","#e91e63","#600927","#673ab7","#291749","#2196f3","#063d69","#00bcd4","#004b55","#4caf50","#1e4620","#cddc39","#575e11","#ffc107","#694f00","#9e9e9e","#3f3f3f","#3f51b5","#192048","#ff5722","#741c00","#795548","#30221d"],"Data":[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19],[20,21],[22,23],[24,25],[26,27],[28,29],[30,31],[0,1],[2,3],[32,33],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19],[20,21],[22,23],[24,25],[26,27],[28,29],[34,35],[30,31],[0,1],[2,3],[32,33],[4,5],[6,7],[10,11],[12,13],[14,15],[16,17],[18,19],[20,21],[22,23],[24,25],[26,27],[28,29],[34,35],[30,31],[0,1],[2,3],[32,33],[6,7],[8,9],[10,11],[12,13],[16,17],[20,21],[22,23],[26,27],[28,29],[30,31],[0,1],[2,3],[32,33],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[18,19],[20,21],[22,23],[24,25],[26,27],[28,29],[34,35],[30,31],[0,1],[2,3],[32,33],[4,5],[6,7],[8,9],[10,11],[12,13],[36,37],[14,15],[16,17],[18,19],[20,21],[22,23],[24,25],[26,27],[28,29],[34,35],[30,31],[2,3],[32,33],[4,5],[6,7]],"Space":null},"ColorLock":null,"LabelRepeat":1,"ThumbnailUrl":"","Confirmed":true,"TextDisplayType":null,"Flagged":false,"DateModified":"2020-02-05T05:14:","CategoryId":3,"Weights":[],"WheelKey":"what-is-the-best-girl-name"}