/tiles-wtf-gallery

Infinite Tiles v2 - Minter, Gallery, Juicebox Treasury

Primary LanguageTypeScriptOtherNOASSERTION

Infinite Tiles v2 (tiles.wtf website)


@peripheralist's timeless, beautiful and dynamic Tiles project is reborn

Contracts

Infinite Tiles v2 Solidity contracts are available on https://github.com/tankbottoms/tiles-on-chain.

About

Infinite Tiles v2 is an on-chain implementation of @peripheralist’s TilesDAO the second (2nd) project on Juicebox. The project is an homage to the venerable @peripheralist, the genius artist, developer, graph-wizard, sexy-man, person. Please send @peripheralist a Tweet telling him how awesome he is.

Infinite Tiles v2 contains the Solidity contracts. The repository structure employed a composable pattern which will be familiar with anyone involved in the Juicebox NFT minting toolkit. The InfiniteTiles contract uses Juicebox v2 terminal to forward any proceeds.

function _payTreasury(address _tile) private {
    IJBPaymentTerminal terminal = jbxDirectory.primaryTerminalOf(jbxProjectId, JBTokens.ETH);
    if (address(terminal) == address(0)) {
      return;
    }

    (bool success, ) = address(terminal).call{value: msg.value}(
      abi.encodeWithSelector(
        terminal.pay.selector,
        jbxProjectId,
        msg.value,
        JBTokens.ETH,
        msg.sender,
        0,
        false,
        (_tile == address(0) ? '' : tokenUriResolver.externalPreviewUrl(_tile)),
        0x0
      )
    );
  }

Tiles Algorithm

The Original Tiles visual algorithm can be found here. You may enter any number of Ethereum addresses here and the site will render a visualization of the Tile for you. Additionally as explained in the next section a number of routes will return different encodings of the Tile with the default route /render/:address returning the Tile as a SVG image. i.e. 0x5d95baEBB8412AD827287240A5c281E3bB30d27E

Tiles Rendering

On idle, any Tile on Tiles.wtf enters an animation state, like Groot, upon any mouse movement, the Tile returns to its position. This was entirely the creative genius of the epic @cookieslayer.



  • /render/:address - renders the tile and returns Base64 encoded SVG.
  • /render/png/:address - renders the tile and returns PNG.
  • /render/svg/:address - renders the tile and returns SVG.
  • /render/particle/:address - renders the tile and returns a particle animation, res high or low, and dark mode are optional parameters. By default light and low resolution modes are used.
  • /render/ethereal/:address - renders the tile and returns an ethereal animation, in which each tile piece individually slowly fades away.

Minting

Most everything about the minting mechanics can be found at the https://tiles.wtf/faq, if you go hard core, than you may find these Etherscan instructions exciting and useful.

User History, Tiles Contract History

Juicebox v2 Treasury

In addition to minting and viewing Tiles, the full Juicebox.money front-end is included and fixed to the Tiles Project Id of 175. This is easily changed. This is intended to demonstrate how a DAO would possibly present a minting experience, and possibly a open or token-gated Treasury management experience. A modification to the Activity component was made in to allow for the parsing of the SVG data provided by the smart contract during the pay-event.


Juicebox


This Svelte Juicebox v2 front-end is made available for anyone to use (see below for the fine print) with an existing Juicebox treasury.

Extra Token Gating Example

Tiles can be used to TokenGate community pages or using GateKeeper IRL. I've started to require a Tile for even causal outings with friends.

Build

yarn install
yarn build
yarn preview

Develop

yarn install
yarn dev

License

Use of the source-code is permitted for projects which route their Ethereum payments to the Juicebox Protocol. See the fine print.

Animation URL rendering deployments


Disclaimers - Terms of Sale - Terms of Service