GithubHelp home page GithubHelp logo

camilleroux / fxhash-bridge Goto Github PK

View Code? Open in Web Editor NEW
13.0 5.0 36.0 633 KB

BRIDGE is a collaborative project for fx(hash), conceived by Camille Roux.

Home Page: https://fxhash-bridge.vercel.app/

JavaScript 99.30% HTML 0.59% CSS 0.11%
fxhash generative-art genart p5 p5js

fxhash-bridge's Introduction

BRIDGE collaborative project for fxhash

BRIDGE is an experimental project for fxhash. Any artist can contribute. The main rule: draw the tiles at the given coordinates. While they are quite visible, you can add everything you want: birds, stars, grass, reflexions, circles... You don't have to draw a real bridge, take the theme as a metaphor. For each minted edition, there'll be a default style, but you will be able to try all the other styles by clicking/touching the image.

โœจ The story

I'm Camille Roux (@camillerouxart). I planned to do a lot of collab this year with fxhash artists I like, but it takes too much time (or maybe I like too much artists ๐Ÿคฃ). Some days ago, I woke up with this idea in mind: "Hey! What if I make a collaboration with all the artists I like at once!". This is how the BRIDGE project was born.

Moreover, I love the mutual aid and solidarity between fxhash generative artists. The BRIDGE can be seen as a symbol of the link between us โ™ฅ๏ธ

๐Ÿ“‹ The rules

If you contribute to the project, you must accept the following rules:

  • I can mint this project on my fxhash profile with any subset of styles. (If you've an idea about what I could do with the unselected styles, let me know!)
  • I'll select the styles I'll mint
  • I'll share manually and equitably the primary market revenue of the/each mint with the creators of the styles included in that mint (the 2sd market revenue is for me) when the project we'll be sold out.
  • You can't mint/drop it yourself
  • For now, I expect there to be about 20-30 editions of each style in the drop.
  • Dead line: February 20th 23:59 CET.
  • I will announce the selected projects on February 21 on my Twitter account and I will create a branch (tag? release?) for the project I'll mint.
  • I'll mint the projet on my fxhash profile, the February 22th 18:00 CET. For pricing, I'll do a Dutch auction.

๐Ÿง‘โ€๐Ÿ’ป How to contribute

  • fork then clone the project
  • run npm i
  • duplicate the ./styles/boilerplate.js, change the name and info
  • in index.js add your style Class to stylesClasses and set defaultStyleClassId to only see your style
  • run npm start to launch the project
  • create a pull request when you're ready (don't need to be ready to mint, you can commit as soon as you've something to show)

๐Ÿคฉ How to be selected

In order to have your style selected, it must:

  • be dimension-less (same output whatever the canvas dimensions)
  • be determist (same output if you refresh with the same hash)
  • draw the tiles at the correct place (tiles must be not move if you change style)
  • write your tez wallet adress in the comment in your code so that I can give you a share of the primary market revenue
  • have fun, make something awesome, collab with other artists (yes, why not a collab in a collab!)... โ™ฅ๏ธ

๐Ÿš€ How to help this project

  • Talk about this project, share this page...
  • Create a style if you know how to code
  • Introduce the project to the artists you would like to see participate
  • Fix bugs, answer questions, add documentation, give feedbacks...

๐Ÿ’ป Technical info

  • The 3D coordinates of point of the bridge is represented by a p5.Vector with the following dimensions:
    • x: from -gridSizeX / 2 (left) to gridSizeX / 2 (right)
    • y: from 0 (front) to gridSizeY (back)
    • z: from 0 (down) to 1 (up)
  • The 2D coordinates of the tiles are an array of p5.Vector. The coord go from (0,0) (top left) to (1,1) (bottom right). So you'll have to multiply them by s at drawing (this is done to be dimension-less)

๐Ÿ–ผ 26 Styles included the fxhash mint

Style Twitter fxhash ๐Ÿ’ฐ
ada_ada_ada.js @ada_ada_ada_art https://www.fxhash.xyz/u/Ada%20Ada%20Ada โœ…
anaglyphic.js @anaglyph_ic https://www.fxhash.xyz/u/anaglyphic โœ…
aqwunderscorezert.js @Aqw_Zert https://www.fxhash.xyz/u/Aqw_Zert โœ…
bridgetunnel.js @CablesAndPixels https://www.fxhash.xyz/u/Laurent%20Houdard โœ…
camilleroux.js @camillerouxart https://www.fxhash.xyz/u/Camille%20Roux -
camilleroux2.js @camillerouxart https://www.fxhash.xyz/u/Camille%20Roux -
davidesq.js @emcyze https://www.fxhash.xyz/u/David%20Esq โœ…
devnull.js @lostpunks https://www.fxhash.xyz/u/devnull โœ…
elsif.js @ElsifThen https://www.fxhash.xyz/u/elsif โœ…
estienne.js @Estienne_ca https://www.fxhash.xyz/u/Estienne โœ…
frederative.js @frederative https://www.fxhash.xyz/u/frederative โœ…
generativepen.js @GenerativePen https://www.fxhash.xyz/u/Generative%20Pen โœ…
gorik.js @gorikfr https://www.fxhash.xyz/u/Gorik โœ…
grosgg.js @grosgg https://www.fxhash.xyz/u/grosgg โœ…
jeres.js @heyjeres https://www.fxhash.xyz/u/jeres โœ…
julabat.js @julabat https://www.fxhash.xyz/u/julabat โœ…
lunarean.js @lunarean https://www.fxhash.xyz/u/lunarean โœ…
makio64.js @makio64 https://www.fxhash.xyz/u/Makio64 โœ…
mandybrigwell.js @mandybrigwell https://www.fxhash.xyz/u/mandybrigwell โœ…
matt_circles.js @matt_circles https://www.fxhash.xyz/u/Matt%20Circles โœ…
nickdima.js @nickdima https://www.fxhash.xyz/u/Nick%20Dima โœ…
phil_osophie.js @phil_osophie https://www.fxhash.xyz/u/phil_osophie โœ…
robinmetcalfe.js @solarise_webdev https://www.fxhash.xyz/u/Robin โœ…
rvig.js @rvig_art https://www.fxhash.xyz/u/rvig โœ…
shuhblam.js @shuhblam https://www.fxhash.xyz/u/shuhblam โœ…
wilke.js @ClausWilke https://www.fxhash.xyz/u/clauswilke โœ…

The code minted on fxhash is from the fxhash branch

๐Ÿ’ฐ Money

  • Primary market is: 4050.00 tez
  • Fees are: 2.5%
  • So "net revenue" is: 3948.75 tez
  • They are 26 styles in the minted project so each included contributor will receive: 151.875 tez.

fxhash-bridge's People

Contributors

anaglyph-ic avatar aqwunderscorezert avatar bfos avatar camilleroux avatar clauswilke avatar david-esq avatar dependabot[bot] avatar drey343 avatar efredericks avatar elsifthen avatar estienneca avatar frederative avatar generativepen avatar gorikfr avatar grosgg avatar jeremyschoenherr avatar jorgemauro avatar julienlabat avatar laurent-h avatar lostpunks avatar makio64 avatar mandybrigwell avatar matthieusegret avatar nickdima avatar pwambach avatar robinjmetcalfe avatar rvig-art avatar sa-azeem avatar shuhblam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fxhash-bridge's Issues

Style interaction between David Esq. style and others

David Esq. style adds a shadow blur that carries over to other styles that are drawn afterwards.

E.g. here:

this._p5.drawingContext.shadowBlur = 50;
this._p5.drawingContext.shadowColor = this.my_palette[0];

(there are other places as well)

Not sure exactly what needs to be done to undo this. Is setting the value to 0 sufficient? The blurring effect also makes the rendering of some other styles extremely slow.

Aqw_Zert style interacts with other styles

As an example, see Estienne style rendered before and after Aqw_Zert has been rendered.

Before:
Screen Shot 2022-02-20 at 10 12 55 PM

After:
Screen Shot 2022-02-20 at 10 13 10 PM

@AqwUnderscoreZert Any unusual features that you use that need to be reset between drawing different styles? See here for all the things we're resetting already:

fxhash-bridge/src/index.js

Lines 181 to 191 in 1c6cc2c

// restore default p5 modes to prevent changes across styles
p5.colorMode(p5.RGB)
p5.ellipseMode(p5.CENTER)
p5.rectMode(p5.CORNER)
p5.blendMode(p5.BLEND)
p5.imageMode(p5.CORNER)
p5.angleMode(p5.RADIANS)
p5.pixelDensity(window.devicePixelRatio)
p5.strokeWeight(1)
p5.drawingContext.shadowBlur = 0
p5.drawingContext.filter = 'none'

Some thoughts about the token description (FXHASH_INFO.md) and project in general

I didn't want to just go in and edit without having a conversation first. Some thoughts:

  • Do we want to include a link to the github repo? To me this is a major part of the story, we can actually go and look how all the different styles were implemented. And all the code is out in the open now, for everybody to see, so presumably the goal is to keep it that way.

  • We should add some licensing terms to either the code or the art. Many people like the NFT license (https://www.nftlicense.org/). I personally have some reservations about it, so I don't use it in my own projects, but I won't be opposed to it if you like it for this project. Alternatively, putting all the code under CC-BY-NC-SA might be a good idea. I see several style authors have followed my lead and have already licensed their code that way.

  • (Unrelated to token description) I think all style authors should add a clear copyright/license notice to their style, so there can be no legal confusion about what can and cannot be done with the code.

Those are the major points I can think of right now. I have some minor suggested edits to the token text that I think I'll just propose in a PR.

Lunarean style somehow interferes with other styles

Easiest way to reproduce: Comment out all styles except Lunarean and Boilerplate, then cycle between styles. After Lunarean has been drawn, Boilerplate turns very dark. Other styles are similarly affected.

Styles using fxhash-helpers change when window is resized

I've noticed that the style by @gorikfr changes appearance every time the window is resized. I believe the problem is this line:

FXInit(fxrand)

It initializes the various FXRandom functions from fxhash-helpers but it doesn't reset the random seed. Styles that use p5 random numbers are fine, as their seeds get reset, but styles that use FXRandom functions are not.

The simplest fix is probably to just re-implement fxrand() and re-set the seed every time before calling FXInit(). You should be able to do this in two lines of code using my FXRandom class available here: https://github.com/clauswilke/fxrandomjs

Alternatively just copy the code from fxrand().

bfos style is not dimension-less

Hi @bfos

Pixels density is changing when I'm resizing the image: (different sizes, same hash).
You need to adapat the stokeWeight with the scaling factor:

this._p5.strokeWeight(1) => this._p5.strokeWeight(1*this._s)

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.