Category: Blog

  • DW

    A Dual Weighting Label Assignment Scheme for Object Detection

    This repo hosts the code for implementing the DW, as presented in our CVPR 2022 paper.

    Introduction

    Label assignment (LA), which aims to assign each training sample a positive (pos) and a negative (neg) loss weight, plays an important role in object detection. Existing LA methods mostly focus on the design of pos weighting function, while the neg weight is directly derived from the pos weight. Such a mechanism limits the learning capacity of detectors. In this paper, we explore a new weighting paradigm, termed dual weighting (DW), to specify pos and neg weights separately. We first identify the key influential factors of pos/neg weights by analyzing the evaluation metrics in object detection, and then design the pos and neg weighting functions based on them. Specifically, the pos weight of a sample is determined by the consistency degree between its classification and localization scores, while the neg weight is decomposed into two terms: the probability that it is a neg sample and its importance conditioned on being a neg sample. Such a weighting strategy offers greater flexibility to distinguish between important and less important samples, resulting in a more effective object detector. Equipped with the proposed DW method, a single FCOS-ResNet-50 detector can reach 41.5 mAP on COCO under 1x schedule, outperforming other existing LA methods. It consistently improves the baselines on COCO by a large margin under various backbones without bells and whistles.

    Installation

    • This DW implementation is based on MMDetection. Therefore the installation is the same as original MMDetection.

    • Please check get_started.md for installation. Make sure the version of MMDetection is larger than 2.18.0.

    Results and Models

    For your convenience, we provide the following trained models. These models are trained with a mini-batch size of 16 images on 8 Nvidia RTX 3090 GPUs (2 images per GPU).

    Backbone Style DCN MS
    train
    Box refine Lr
    schd
    box AP
    (val)
        Download    
    R-50 pytorch N N N 1x 41.5 model | log
    R-50 pytorch N N Y 1x 42.1 model | log
    R-50 pytorch N Y Y 2x 44.8 model | log
    R-50 pytorch Y Y Y 2x 47.9 model | log
    R-101 pytorch N Y N 2x 46.1 model | log

    Notes:

    • The MS-train maximum scale range is 1333x[480:960] (range mode) and the inference scale keeps 1333×800.
    • DCN means using DCNv2 in both backbone and head.

    Inference

    Assuming you have put the COCO dataset into data/coco/ and have downloaded the models into the weights/, you can now evaluate the models on the COCO val2017 split:

    bash dist_test.sh configs/dw_r50_fpn_1x_coco.py weights/r50_1x.pth 8 --eval bbox
    

    Training

    The following command line will train dw_r50_fpn_1x_coco on 8 GPUs:

    bash dist_train.sh configs/dw_r50_fpn_1x_coco.py 8 --work-dir weights/r50_1x
    

    Citation

    @inproceedings{shuai2022DW,
      title={A Dual Weighting Label Assignment Scheme for Object Detection},
      author={Li, Shuai and He, Chenhang and Li, Ruihuang and Zhang, Lei},
      booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
      year={2022}
    }
    

    Visit original content creator repository
    https://github.com/strongwolf/DW

  • boot-vue

    Boot-Vue

    Boot-Vue - Opinionated Vite Starter Template

    Mocking up web app with Boot-Vue (speed)

    English | 简体中文

    Features

    Coding Style

    Recommended IDE Setup

    Performance

    Boot-Vue Outstanding performance

    directory

    # boot-vue
    ├─.github                                # Stores GitHub related configuration files.
    │  ├─ISSUE_TEMPLATE                       # GitHub Issue templates
    │  └─workflows                            # GitHub Actions related configuration files
    ├─.husky                                  # Stores Git Hooks related configuration files
    │  └─_                                    # Stores Git Hooks execution scripts
    ├─.idea                                   # Stores IntelliJ IDEA related configuration files
    │  ├─codeStyles                           # Stores code formatting rules
    │  └─inspectionProfiles                  # Stores code inspection rules
    ├─.vscode                                 # Stores VS Code related configuration files
    ├─public                                  # Stores static resources required by the web application
    ├─README.assets                           # Stores images and other resources used by README.md
    ├─src                                     # Stores the source code of the web application
    │  ├─assets                               # Stores static resources required by the web application
    │  ├─components                           # Stores the components of the web application
    │  │  └─Icon                              # Stores the components representing icons
    │  ├─config                               # Stores the configuration files of the web application
    │  │  ├─nprogress                         # Stores the configuration file of the progress bar library NProgress
    │  │  └─unocss                            # Stores the configuration file of the UnoCSS
    │  ├─constant                             # Stores the constant values used in the web application
    │  ├─layouts                              # Stores the layout components of the web application
    │  │  ├─Footer                            # Stores the layout component representing the footer of the page
    │  │  └─Navbar                            # Stores the layout component representing the navigation bar of the page
    │  │      └─components                    # Stores the child components of the Navbar layout component
    │  │          ├─LocalesChange             # Stores the child component representing language switch
    │  │          └─ThemeChange               # Stores the child component representing theme switch
    │  ├─locales                              # Stores the content files of the web application's multiple languages
    │  ├─router                               # Stores the routing configuration files of the web application
    │  │  └─routes                            # Stores the modules of the web application's routes
    │  │      └─modules                       # Stores the sub-modules of the routing modules of the web application
    │  ├─store                                # Stores the state management files of the web application
    │  ├─styles                               # Stores the style files of the web application
    │  └─views                                # Stores the page components of the web application
    │      ├─errorPages                       # Stores the components representing error pages
    │      └─home                             # Stores the components representing the homepage
    │          └─components                   # Stores the child components of the homepage components
    ├─test                                    # Stores the test code
    │  └─__snapshots__                        # Stores the Jest snapshot test results
    └─types                                   # Stores the TypeScript type declaration files
    
    

    Try it now!

    GitHub Template

    Create a repo from this template on GitHub.

    Clone to local

    npx degit kirklin/boot-vue my-app
    cd my-app
    pnpm i

    Usage

    Development

    Just run and visit http://localhost:8888

    pnpm run dev

    Build

    To build the App, run

    pnpm run build

    And you will see the generated file in dist that ready to be served.

    Deploy on Netlify

    Go to Netlify and select your clone, OK along the way, and your App will be live in a minute.

    Docker Production Build

    First, build the boot-vue image by opening the terminal in the project’s root directory.

    docker buildx build . -t viteboot:latest

    Run the image and specify port mapping with the -p flag.

    docker run --rm -it -p 8080:80 viteboot:latest
    Visit original content creator repository https://github.com/kirklin/boot-vue
  • EasyRichText

    排版地址:https://blog.csdn.net/long8313002/article/details/108596142

    使用指南

    项目build.gradle

    implementation ‘com.zhangzheng.easyrichtext:library:1.0.1’

    布局xml文件

    显示效果

    支持属性
    分类

    属性名称

    说明

    示例

    基本属性

    textColor

    文字颜色

    <TextView

    android:id=”@+id/tvClick”

    android:text=”1111111″

    android:textColor=”#FF0000″

    android:textSize=”18sp”

    android:background=”#FFFF00″

    android:textStyle=”bold|italic”

    app:layout_isUnderline=”true”

    app:layout_isStrikethrough=”true”

    android:layout_width=”wrap_content”

    android:layout_height=”wrap_content”/>

    text

    文字

    textSize

    文字大小

    background

    背景

    textStyle

    类型:

    粗:bold

    斜:italic

    粗斜:bold|italic

    isUnderline

    下滑线

    isStrikethrough

    删除线

    图片属性

    src

    图片

    <ImageView

    android:id=”@+id/ivClick”

    android:layout_width=”30dp”

    android:src=”https://github.com/long8313002/@mipmap/ic_launcher”

    android:layout_height=”30dp”/>

    width

    图片宽

    height

    图片高

    自定义布局

    所有View属性

    性能会有一定影响,可以使用基本属性的建议使用基本属性

    <FrameLayout

    android:id=”@+id/flClick”

    android:layout_width=”wrap_content”

    android:padding=”10dp”

    android:background=”#33FF0000″

    android:layout_height=”wrap_content”>

    <TextView

    android:layout_gravity=”center”

    android:layout_width=”wrap_content”

    android:text=”我是自定义视图”

    android:layout_height=”wrap_content”/>

    支持事件

    点击事件

    改变文本

    改变显示状态

    改变其他属性
    上面表格列举的属性,可以直接代码进行更改,因为控件实际上并没有添加到窗口上,这里没办法直接感知到属性的变化,所以需要手动调用下update方法。

    Visit original content creator repository
    https://github.com/long8313002/EasyRichText

  • Syma_MJX_Arduino

    Syma_Arduino

    Adding transmitter controllable components to Syma X5/X8 and MJX Bugs 3 quadcopters with an Arduino/Arduino compatible board, via the camera port.


    How it works:

    Despite being in different shells, most models of the Syma X5 & X8 series quadcopters feature the same type of camera, controllable using the stock transmitter/radio. The MJX Bugs 3 also works in the same way. When the picture or video buttons are pressed on the transmitter a signal is sent to the camera via the yellow signal wire on the Syma/FPV port on the MJX Bugs 3.

    The signal wire starts high (3.7v for X5 models/MJX Bugs 3, 5v for the X8’s) dropping to 0v for 0.25 seconds for picture, and 0.75 seconds for video.

    Using an small, lightweight Arduino/Arduino compatible board, this sketch reads the signal wire from the Syma/Bugs 3 and allows you to run your own code for components that you might want to add to the quad. (e.g. a servo, extra LEDs, sensors, IR emitter etc.). These components can be controlled from the stock transmitter using the picture/video buttons.

    The Arduino board can be soldered directly into the quads (for a more pearmeant setup) or utilise the different camera ports to make it removable.

    Compatible models:

    The sketch has been tested on a Syma X5C using an Adafruit Trinket (3.3 v) to control a servo, and a camera switcher and buzzer on the MJX Bugs 3… however this technique should also be applicable to the following models (please get in contact is this does or does not work for you):

    Syma X5 Series

    • X5C/X5C-1
    • X5S/X5SW
    • X5HW

    ! The X5UC/X5UW’s are a noticeably different to older X5 models and use a new camera with 4 wires. It’s not clear what kind of signal is sent to the camera to activate it.

    Syma X8 Series

    • X8C/X8HC
    • X8W/X8HW
    • X8G/X8HG <– Different camera, but signal should be the same

    MJX Bugs 3
    Discovered that this also works for the MJX Bugs 3 and it’s FPV port inside the shell!

    References

    Visit original content creator repository
    https://github.com/MakerThornhill/Syma_MJX_Arduino

  • Discord-ChatGPT-SelfBot

    Discord-ChatGPT-SelfBot

    • NOT : Self bot usage is prohibited by Discord. If your account is terminated by Discord, the responsibility lies with you.

    • First, open Discord and press the F12 key to open the developer tools console. Click on the Network tab.

    • Next, type some random text in a server on Discord. Then, click on your own username.

    • In the Network tab, click on a tab called Science and scroll down the page.

    • Find the Authorization: text and you will see your user token in the adjacent area. Copy this token.

    • Next, download the provided file and open the .env file inside it. In the .env file, you will find an entry UserToken=. Paste your token to the right side of this entry.

    • Now, go to https://platform.openai.com/account/api-keys for the next step.

    • After you’ve logged in, click on the create new secret key option to generate your API key.

    • Copy your API key, then open the .env file later. In the .env file, you’ll find the entry OpenAI=. Paste your token to the right side of this entry.

    • Now, open the terminal, type npm i to install the necessary modules. After the modules are installed, type node index to run the bot.

    • Usage : 4!gpt (question etc.)

    • If you need any assistance, feel free to join our server and ask your questions there.

    • https://discord.gg/4g9VEETzes

    Visit original content creator repository
    https://github.com/4btin/Discord-ChatGPT-SelfBot

  • cassitory

    Cassitory

    Development status Build Status Coverage Status Maven Central

    Cassitory allows you to handle redundancy tables in Cassandra (In case that Apache Spark is not an option or to complex for your needs)

    In a normal scenario you would have to define a cassandra entity per table that holds the cassandra annotations, and for each of them a Repository that will be used by your service coordinating all the write operations and making sure that you persist to both tables by using both repositories, therefore you will have to create one instance per cassandra entity to persist.

    The idea behind Cassitory is to hide all that complexity from you. Although you will still need to have your cassandra entities but no Repositories, no creation of multiple Cassandra entity instances.
    Instead you will have DTO that contains the data and knows how to map to each Cassandra entity and a Single repository to handle all the persistence layer to the multiple tables. Based on the mapping it will create an instance of each Cassandra Entity and save it.

    ASYNC is awesome! so you can save and delete using async operations but also provides a sync way in case that you have go down that route.

    NO REFLEXION: Cassitory does not use reflexion to do all the operations that provides and because of it there are some compromises if you want to use it.

    • Your Cassandra entities must have a Getters and Setters.
    • Your DTO must have Getters.

    Cassitory use annotation processing to generate code than otherwise you would have to write it and it is quite good that if there is any error you would get it at compile time.

    Important Release Note:

    • up to 0.2.1: supports only Mappers Repositories
    • higher than 1.0.0: support for Mappers and Prepered statements

    Motivation

    it is well known that Cassandra recommends de-normalisation of your model. Meaning that in order to support different search criteria for searching the data, Cassandra recommends to create a redundancy table having as partition key the fields that you want search for. Applying this pattern in your application could be very difficult to maintain. it would be nice to have a generic repository that allowing you to have support multiple tables and also execute queries and decide which table is the correct one.

    Introduction

    Cassitory is quite simple to use just following the steps and it will give you a Repository for your DTO ready to use in your application. Cassitory gives you two type of repositories.

    Using Cassandra entities

    The first one is by using Cassandra Entities Classes where you have to create your POJO and annotate them using Cassandra Object Mapper library. and apart of those POJO you will have to create your DTO entity and annotate it with Cassitory annotations and it will be used to map the values to your Cassandra entities. Here you have the annotations that you will have to use:

    • uk.co.caeldev.cassitory.entities.CassitoryEntity
    • uk.co.caeldev.cassitory.entities.Mapping

    Using Prepared Statements and queries

    with this repo you don’t have to create your Cassandra entities, just your DTO annotated with Cassitory annotations. Here you have the annotations that you will have to use:

    • uk.co.caeldev.cassitory.statements.CassitoryEntity
    • uk.co.caeldev.cassitory.statements.Mapping

    How to use it

    Add to your gradle dependency to run the annotation processor and follow one of the two kind of repositories that Cassitory offers you.

    finally annotate your DTO class with the Cassitory annotations that fits better for your project.

    Visit original content creator repository https://github.com/caelcs/cassitory
  • page_hits_counter

    Page Hits Counter

    This app is a example of a simple page hits counter. It uses the Internet Computer to store the count of page hits and display it on the page.

    Better readme coming soon.

    Welcome to your new page_hits_counter project and to the internet computer development community. By default, creating a new project adds this README and some template files to your project directory. You can edit these template files to customize your project and to include your own code to speed up the development cycle.

    To get started, you might want to explore the project directory structure and the default configuration file. Working with this project in your development environment will not affect any production deployment or identity tokens.

    To learn more before you start working with page_hits_counter, see the following documentation available online:

    If you want to start working on your project right away, you might want to try the following commands:

    cd page_hits_counter/
    dfx help
    dfx canister --help

    Running the project locally

    If you want to test your project locally, you can use the following commands:

    # Starts the replica, running in the background
    dfx start --background
    
    # Deploys your canisters to the replica and generates your candid interface
    dfx deploy

    Once the job completes, your application will be available at http://localhost:4943?canisterId={asset_canister_id}.

    If you have made changes to your backend canister, you can generate a new candid interface with

    npm run generate

    at any time. This is recommended before starting the frontend development server, and will be run automatically any time you run dfx deploy.

    If you are making frontend changes, you can start a development server with

    npm start

    Which will start a server at http://localhost:8080, proxying API requests to the replica at port 4943.

    Note on frontend environment variables

    If you are hosting frontend code somewhere without using DFX, you may need to make one of the following adjustments to ensure your project does not fetch the root key in production:

    • setDFX_NETWORK to ic if you are using Webpack
    • use your own preferred method to replace process.env.DFX_NETWORK in the autogenerated declarations
      • Setting canisters -> {asset_canister_id} -> declarations -> env_override to a string in dfx.json will replace process.env.DFX_NETWORK with the string in the autogenerated declarations
    • Write your own createActor constructor

    Visit original content creator repository
    https://github.com/kristoferlund/page_hits_counter

  • pydbg

    pydbg 🐛 Build Status

    pydbg is an implementation of the Rust builtin debugging macro dbg

    The purpose of this package is to provide a better and more effective workflow for people who are “print debuggers”.

    pip install pydbg

    The old way:

    a = 2
    b = 3
    
    print(f"a + b after instatiated = {a+b}")
    
    def square(x: int) -> int:
        return x * x
    
    print(f"a squared with my function = {square(a)}")

    outputs:

    a + b after instatiated = 5
    a squared with my function = 4
    

    The new (and better) way

    from pydbg import dbg
    
    a = 2
    b = 3
    
    dbg(a+b)
    
    def square(x: int) -> int:
        return x * x
    
    dbg(square(a))

    outputs:

    [testfile.py:4] a+b = 5
    [testfile.py:9] square(a) = 4
    

    This project is a work in progress and all feedback is appreciated.

    The next features that are planned are:

    • Fancy Mode (display information about the whole callstack)
    • Performance Optimizations
    • Typing information

    CONTRIBUTORS:

    Thanks to everyone who has submitted an issue or thoughts on this project. Special thanks to those who have submitted a PR to make this project better for everyone:

    Visit original content creator repository https://github.com/tylerwince/pydbg
  • awesome-global-contributions

    Awesome Global Contributions Awesome Project Status: Active – The project has reached a stable, usable state and is being actively developed.

    Awesome Open Source projects dedicated to tackling global challenges and friendly to volunteering software engineers.

    Table of Contents

    Created by gh-md-toc

    SDG 1: No poverty

    Fineract

    Mature platform with open APIs that provides a reliable, robust, and affordable core banking solution for financial institutions offering services to the world’s 2 billion underbanked and unbanked.

    SDG 2: Zero hunger

    farmOS

    farmOS is a web-based application for farm management, planning, and record keeping. It is developed by a community of farmers, developers, researchers, and organizations with the aim of providing a standard platform for agricultural data collection and management.

    if me

    If me is a community for mental health experiences that encourages people to share their presonal stories with trusted allies.

    OpenFarm

    Free and open database for farming and gardening knowledge. Their mission is to develop a community and tools for freely sharing plant knowledge locally and globally.

    Open Food Network

    The Open Food Network is an online marketplace for local food. It enables a network of independent online food stores that connects farmers with individuals and local businesses.

    Tania

    Tania is a free and open source farm management software. You can manage your farm areas, farm reservoirs, farm tasks, inventories, and the crop growing progress. It is designed for any type of farms.

    SDG 3: Good health and well-being

    Bahmni

    Bahmni is an Open Source hospital Management System focusing on poor/underserved and public hospitals in the developing world. It’s aimed to being a generic system which can be used for multiple diseases and hospitals in different countries.

    diaper

    Diaperbase is an inventory system for diaper banks, to aid them in tracking their inventory and providing statistics about their inventory flows.

    ERPNext

    ERPNext is a top-rated Open Source ERP (Enterprise Resource Planning). Among other features, it also offers a Healthcare module to manage patient data, appointments, lab tests and more. Originally a separate module named smarteCare, it’s now integrated in the core itself.

    GNU Health

    GNU Health is a Free/Libre project for health practitioners, health institutions and governments. It provides the functionality of Electronic Medical Record (EMR), Hospital Management (HMIS) and Health Information System (HIS).

    Safecast

    Safecast is a global volunteer-centered Citizen Science project working to empower people with open data about their environments. They currently offer two datasets of radiation and air quality in cpm (count per minute) and μSv/h (micro-Sievert per hour).

    SDG 4: Quality education

    Kolibri

    Kolibri makes high quality education technology available in low-resource communities such as rural schools, refugee camps, orphanages, non-formal school systems, and prison systems. It does so by providing an offline application

    MediaWiki

    The software behind Wikipedia

    Oppia

    Oppia is an online learning tool that enables anyone to create and share interactive activies. In addition the core team also maintains a set of free and effective lessons that are targeted at learners who lack access to educational resources.

    SignDict

    SignDict is a german dictionary for sign language using the GSL. Currently it has over 4000 signs listed.

    SDG 6: Clean water and sanitation

    diaper

    Diaperbase is an inventory system for diaper banks, to aid them in tracking their inventory and providing statistics about their inventory flows.

    ffem

    The Foundation for Environmental Monitoring is a nonprofit company developing open source products including hardware designed to help address issues related to water and soil

    SDG 7: Affordable and clean energy

    OpenEMS

    OpenEMS is a modular platform for energy management applications. It was developed around the requirements of controlling, monitoring and integrating energy storage systems together with renewable energy sources and complementary devices and services.

    SDG 9: Industry, Innovation and infrastructure

    Safecast

    Safecast is a global volunteer-centered Citizen Science project working to empower people with open data about their environments. They currently offer two datasets of radiation and air quality in cpm (count per minute) and μSv/h (micro-Sievert per hour).

    SDG 10: Reduced inequalities

    A11Y

    This Accessibility Project is a community-driven effort to make web accessibility easier by leveraging a worldwide community of developer knowledge.

    Oppia

    Oppia is an online learning tool that enables anyone to create and share interactive activies. In addition the core team also maintains a set of free and effective lessons that are targeted at learners who lack access to educational resources.

    OptiKey

    OptiKey is an on-screen keyboard that is designed to help patients with Motor Neuron Disease (MND) interact with Windows computers. It can be used with eye-tracking devices, mouse or webcam. At the current time it has also been translated into 24 different languages and estimates around 2000 regular users

    SignDict

    SignDict is a german dictionary for sign language using the GSL. Currently it has over 4000 signs listed.

    Ushahidi

    A platform that allows information collection, visualization and interactive mapping, allowing anyone to submit information through text messaging using a mobile phone, email or web form. This should help to give power to marginalized people.

    SDG 12: Responsible consumption and production

    Open Food Network

    The Open Food Network is an online marketplace for local food. It enables a network of independent online food stores that connects farmers with individuals and local businesses.

    SDG 14: Life below water

    ffem

    The Foundation for Environmental Monitoring is a nonprofit company developing open source products including hardware designed to help address issues related to water and soil

    Union VMS

    An open-source Vessel Monitoring System (EU project) based on FLUX (Fisheries Language for Universal eXchange)

    SDG 15: Life on land

    Autofocus

    AutoFocus uses deep learning to identify the type of animal in “camera traps” photos. This frees up a lot of time for wildlife conservation efforts, for which this is often a major bottleneck.

    ffem

    The Foundation for Environmental Monitoring is a nonprofit company developing open source products including hardware designed to help address issues related to water and soil

    SDG 16: Peace, Justice and strong institutions

    Alaveteli

    Platform for making public freedom of information requests to public bodies. Alaveteli helps you lower the barriers that prevent citizens asking questions of those in power. Alaveteli has been implemented for 24 different countries

    Callisto

    Reporting sexual assoult or professional sexual coercion can feel isolating – or worse, retraumatizing. To some it might also come with some risk. Callisto wants to change the equation and empower survivors, provide options and allow disclosure in a way that feels save. Under its many functionalities, one of them is to securely connect victims of the same perpetrator to identify repeat offenders.

    Serenata de amor

    Serenata compiles public information of Brazilian politicians and analyses it using an AI. It will then also point out suspicious transactions and provide statistics. Adaption for other countries is not planned, but supported by the maintainers.

    SDG 17: Partnerships for the goals

    CharityBase

    Charity Base is an API that aggregates data from the 168,000 charities registered in England and Wales – potentially expanding to other countries in the future.

    Twilio.org Rapid Response Kit

    A collection and combination of multiple different tools for all possible communication means for Nonprofits. These include Auto-Response, Broadcast, Conference Line, Forwarder, Ringdowns, Surveys and more.

    Voluntarily

    Platform for volunteers and projects to find each other. Volunteers can include time, advice or physical things.

    Visit original content creator repository https://github.com/awesome-global-contributions/awesome-global-contributions
  • snowflakes.js

    Snowflakes.js

    NPM

    Customizable snowflakes for your site, HO! HO! HO!

    Install

    npm install snowflakes
    

    Usage

    JS Script

    <script src="dist/snowflakes.min.js"></script>
    <script>
        snowflakes.init(/* { you can pass an options object here } */);
    </script>

    ES6 Import

    import { init } from "snowflakes";
    init(/* { you can pass an options object here } */);

    or

    import snowflakes from "snowflakes";
    snowflakes.init(/* { you can pass an options object here } */);

    CommonJS require

    let snowflakes = require('snowflakes');
    snowflakes.init(/* { you can pass an options object here } */);

    Options

    • background: Snowflakes background. It can be any CSS background property. Default value: ‘rgba(150,150,200,0.8)’
    • borderRadius: Border radius for round corners. Default value: ’10px’
    • width: CSS Property. Default value: ‘5px’
    • height: CSS Property. Default value: ‘5px’
    • boxShadow: Shadow for the snowflakes. CSS Property: Default value: ‘1px 1px .5px rgba(0,0,0,0.8)’
    • zIndex: CSS Property. Default value: 10
    • addSnowflakeFrequency: Frequency in milliseconds for adding new snowflakes. Default value: 800
    • moveSnowflakeFrequency: Frequency in milliseconds for moving the snowflakes. Default value: 50
    • removeSnowFlakeFrequency: Frequency in milliseconds for removing the snowflakes that are out of the screen. Default value: 1000
    • horizontalSpeed: Speed for the horizontal movement in pixels: Default value: 1
    • horizontalMovement: Max offset in pixels for the horizontal movement. Default value: 10
    • verticalSpeed: Speed for the vertical. Default value: 1
    • maxSnowflakes. Max count of snowflakes in the screen. Default value: 200

    Demo

    You can see snowflakes in action here

    Visit original content creator repository https://github.com/albert-gonzalez/snowflakes.js