npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

chicago-brick

v0.6.2

Published

Code which can manage a large video wall with multiple nodes.

Downloads

5

Readme

Chicago Brick: the Google Chicago Video Wall Software

Quick Start

To use this software, first download and install deno.

Next, clone the repo to your machine:

$ git clone https://github.com/google/chicago-brick.git

Then, to run the server in 1x1 mode with the gears module:

chicago-brick$ ./bin/run_1x1.sh -m gears

This should open a Chrome window to http://localhost:3000/?config=0,0,1920,1080. You should be able to see some gears rotating. If you don't see that, try running the npm install command again.

Or, to run the server in 2x2 mode with the gears module:

chicago-brick$ ./bin/run_2x2.sh -m gears

And open the client windows like so:

chicago-brick$ ./bin/start_2x2_clients.sh

You should be able to see the same thing with four browser windows instead.

You can play with different modules by substituting the gears argument with other names from chicago-brick/config/demo-playlist.json or from the various brick.json files within the demo_modules folder.

Geometry

The wall server needs to know the shape of the screens that make up the wall. At the moment, this shape must be a single polygon, though it can be concave. By default, the wall assumes that it's going to display on a 1920x1080 screen. To change this, you can use the --use_geometry flag to specify the shape in a turtle-like langauge. You can also specify the points in a JSON-formatted file and use the --geometry_file flag to pass the path to the file.

Modules

A chicago brick module is responsible for showing control across the wall. Modules are stored in a directory and contain a brick.json file with metadata about the module. The directory also contains the client and server parts to the module, which are executed on the clients or server respectively. These parts can be written in TypeScript or JavaScript, though TypeScript is strongly preferred. See examples in demo_modules.

The server learns about modules that can be shown via the --module_dir flag, which is scanned for any brick.json files. Playlists are only allowed to reference modules that the wall knows about.

Playlist

A playlist defines the order in which the wall should play modules. The playlist consists of layouts, each of which refers to either a specific list of modules or a pre-defined collection of modules. The layout will randomly select among its set of modules and play each for the specified module duration. After the layout duration expires, the next layout is shown. For example:

{
  "playlist": [
    {
      "modules": ["gears", "slither"],
      "duration": 600,
      "moduleDuration": 60
    },
    {
      "modules": ["matrix"],
      "duration": 600,
      "moduleDuration": 600
    }
  ]
}

Contributing

We welcome contributions of new modules and of improvements to the wall software itself! See the CONTRIBUTING file for some stuff you need to complete before you contribute.

Hopefully, this gets you developing!

– Chicago Brick Team