Skip to content

ZIM NFT

Compare
Choose a tag to compare
@danzen danzen released this 18 Aug 16:19
· 127 commits to master since this release

ZIM NFT (the next major version after ZIM CAT and ZIM TEN) features:

  • instructions to make Interactive NFTs with ZIM. See https://zimjs.com/nft
  • a new Crystal system has been created where one script call calls multiple library scripts
  • a TextInput() for editable text right on the Canvas
  • for these and other features please see formatted UPDATES at https://zimjs.com/updates.html

    1. INTERACTIVE NFTS
    https://zimjs.com/nft 
    NFTs (Non-Fungible Tokens) are a lastest craze for Artists and Collectors
    with some like Beeple and CryptoPunks selling for millions!
    ZIM NFT is actually an NFT that you can collect if you are quick enough. 
    At the bottom of the page linked above we tell you how to collect the ZIM NFT.
    ZIM can be used to make interactive NFTs 
    to sell as art on Web apps such as hic et nunc https://hicetnunc.xyz 
    Please see the NFT page for more! https://zimjs.com/nft
    Incuding a guide to making NFTs, setting up a Wallet
    and COLLECTING the ZIM NFT!
    https://www.youtube.com/watch?v=brIWbJ8QYO8
    https://www.youtube.com/watch?v=gwMdtCT3Kbo
    
    2. ZIM CRYSTAL - IMPROVEMENT
    https://zimjs.com/crystal
    We now present seven single files that can be used to load ZIM Crystals.
    zim.js          // a crystal of createjs.js, zim_min.js 
    zim_game.js     // a crystal of createjs.js, zim_min.js, game.js  
    zim_physics.js  // a crystal of createjs.js, zim_min.js, box2d.js, physics.js, game.js
    zim_three.js    // a crystal of createjs.js, zim_min.js, three.min.js, orbitControls.js, three.js
    zim_socket.js   // a crystal of createjs.js, zim_min.js, socketio.js, socket.js, zimserver_urls.js
    zim_distill.js  // a crystal of createjs.js, a distilled.js placeholder URL
    zim_test.js     // a crystal of createjs.js, zim_doc.js
    <script src=https://zimjs.com/cdn/nft/00/zim.js></script> 
    

    <!-- will load ZIM and CreateJS -->

  • The crystals are all available at the top of the CDN
  • All the traditional files are still available in the CDN and can be brought in as separate script calls instead of using crystals.
  • ZIM Crystal just calls sets of the individual files from a single script.
  • The crystal scripts are made automatically and stored in each MAIN version folder
  • They will use the current scripts at the time the main version folder is created.
  • If a script within the crystal changes versions the crystal script will NOT be updated but rather an subdirectory will be made for the new Crystal
  • 3. TEXTINPUT - IMPROVEMENT
    https://zimjs.com/explore/textinput.html 
    The ZIM TextInput() class provides editable text on the Canvas.
    Three cheers for Cajoek who created a LabelInput that mirrors an HTML input field.
    We then wrapped this in a Window to provide a scrollable TextInput box.
    Now input text is a proper part of the canvas - as opposed to an overlay like ZIM TextArea.
    It is a proper DisplayObject that extends from a ZIM Window and has a ZIM Label. 
    There is a blinker which is a ZIM Rectangle and all this can be rotated, layered, etc.
    For this release, the TextInput is one line and behaves very much like an HTML input of type text.
    See the docs for more features https://zimjs.com/docs.html?item=TextInput
    
    4. NEW SQUIGGLE AND BLOB EDITS - IMPROVEMENT
    https://zimjs.com/explore/pathediting.html
    Added the following functions to the code module to help cut up, join, reverse and trim paths.  
    These are also available as methods on the Squiggle and Blob (availability depends on relevance).
    reversePoints(points)
        Reverses Squiggle formatted points
    appendPoints(original, points, controlType)
        Adds a set of Squiggle points to after an original set of Squiggle points
        The joining point is merged with the provided optional controlType
        ** appendPoints() expects the first point on points (the second parameter)
        to be at the last point of the original (the first parameter)
    prependPoints(original, points, controlType)    
        Adds a set of Squiggle points to before an original set of Squiggle points
        The joining point is merged with the provided optional controlType
        ** prependPoints() expects the last point on points (the second parameter)
        to be at the first point of the original (the first parameter)
    splitPoints(points, index, trimEnds)
        Splits Squiggle points into two sets of Squiggle points
        Also used by Squiggle splitPoints() and Blob makeSquiggle()
    trimEndPoints(points)
        Take outside Bezier rectangles off end points of Squiggle
        Modifies the points but then will have to make Squiggle from modified points
        Used internally, but might want to create a Squiggle from half the points or every other point
        this function would make sure ends are clean.
    SQUIGGLE: gets reversePoints(), appendPoints(), prependPoints(), splitPoints(), and
        makeBlob(controlType, mergeDist) - makes a new Blob from the Squiggle 
        	returns the new Blob - the Squiggle remains unchanged so may need to remove it
        	controlType (default "free" if not merged and "mirror" if merged) 
        		controlType for the joined end points - also see mergeDist below
        		this will not change the control sticks until their handles are dragged
        	mergeDist (default 5) merges overlapping end points (within this pixel distance) 
    BLOB: gets eversePoints() and 
        makeSquiggle(index) - create a new Squiggle by cutting Blob at index (default 0)
        	returns the new Squiggle - the Blob remains unchanged - so may need to remove it
    
    5. SCALETO - BREAK
    ZIM scaleTo() now defaults to FILL if no percentages are provided.
    This is so we can easily set backgrounds that fill the stage:
    backing.scaleTo().center(); // will now FILL the stage 
    // we no longer have to use backing.scaleTo({type:FILL}).center();
    // to FIT 100% to the stage use:
    obj.scaleTo({type:FIT}).center();
    // note that the default if a percentage is applied is FIT
    obj.scaleTo(stage,80,80).center();
    // so this would also FIT to the stage 100%
    obj.scaleTo(stage,100,100).center();
    
    6. GENERAL
    Added countDecimals(num) to Code module - to count decimals in number.
    Added backgroundColor property to Window 
    Changed Circle percent property (not parameter) to percentage BREAK
    to not conflict with animate() percent
    Added blendMode:"difference", etc. to STYLE as part of the transformations
    Added a "closing" event to Pane that triggers before the stage update of the closed Pane 
    this provides for reloading the page without closing the pane which might cause a flash
    The pane now closes and dispatches the "close" event 10ms after being pressed.
    Adjusted Frame to wait for its width and height to be >= 1 before triggering a ready event 
    This came up on hic et nunc which shows NFTs in a React component IMPROVEMENT
    it seemed to start with a width and height of 0 when loading from cache.
    
    7. PATCHES
    Note that there were 77 patches to ZIM Cat 04 - all of which have improved ZIM NFT.
    
    8. ZIM HELPER MODULES
    ZIM game module has been updated to 2.5
    the registration point on the Scorer and Timer for isometric RIGHT has been set to the center (thanks Karel Rosseel)
    Patched ZIM physics_2.2.js to make gravity a get/set property - was just a get property. 
    
    9. ZIM DOCS - IMPROVEMENT
    Added link to EXPAND button so specific docs link can be copied with right click or long click on mobile (thanks Karel Rosseel)
    Updated dozens of docs examples to latest ZIM practice 
    Thanks Karel Rosseel for close to 50 refinements -if anyone else sees things, please report.
    Added examples and descriptions for Pizzazz 4 - paths 
    Added search proxies - so searching visible will find vis, etc. 
    {
        visible:"vis", 
        blendmode:"ble", 
        registration:"reg", 
        registrationPoint:"reg", 
        shadow:"sha", 
        name:"nam", 
        alpha:"alp", 
        rotation:"rot", 
        scale:"sca", 
        scaleX:"sca", 
        scaleY:"sca", 
        x:"loc", 
        y:"loc", 
        skew:"ske", 
        skewX:"ske", 
        skewY:"ske", 
        width:"siz", 
        height:"siz", 
        cursor:"cur", 
        asset:"images", 
        picture:"images", 
        assets:"images", 
        pictures:"images"
    };
    

    Added base methods to ZIM Docs - these are mostly CreateJS DisplayObject methods
    cache(), updateCache(), uncache(), on(), off(), removeAllEventListeners(), getBounds(), setBounds(), clone(), dispose()
    Added filter for Docs search to ignore text inside wrong answers when they come first
    for instance, searching for ble for blendMode would find Scrambler first - now it does not
    If YOU find a wrong answer like this, please let us know and we can add it to the filter
    Make sure you are at the TOP when you do your search. Cheers.
    Added videos links for:
    CAT: "Book", "effect", "updateEffects", "noEffect", "BlurEffect", "GlowEffect", "ShadowEffect",
    "ColorEffect", "MultiEffect", "AlphaEffect", "zimEase", "zimEase"
    HELPER: "PIZZAZZ 4 makePath"

    10. ZIM SITE - IMPROVEMENT
    Added 40 examples to Examples including Feature, NFTS (new!), Collection, CodePen and Magical.
    Updated the NEWS and ABOUT to ZIM NFT
    Added NFT and Crystal pages and links on the CODE page.
    Added TIPS to top of Bits View Code pages - and changed copyright to ZIM (left 2016 as that is when they were made)
    Changed the faveicon to latest ZIM icon stem. 
    
    11. ZIM KIDS  - IMPROVEMENT
    Made major updates to ZIM Kids Slate editor.  Thanks Karel Rosseel for the prompting.
    Added over 600 Backing, Nature, People and Things images and Sounds
    These can be checkmarked and then automatically used in slate as asset("name") 
    Included a six level expandable help section to describe how to use assets. 
    Added STORE functionality to store code while trying other code then retreive the code. 
    Organized and provide DEMO code for Slate.
    Added Physics option to SLATE and sounds to the assets. 
    Added Pizzazz 01, 02, 03 automatically to Slate. 
    Made updating Docs also update Spells so two stay in sync.
    
    12. ZIM DOCTOR 
    https://zimjs.com/doctor 
    Changed name of Docs customize page to Doctor in a ZIM Tool format.
    This lets you paste ZIM Code and get a docs link that features commands in the code.
    Added this as a tool to the Code page.
    
    13. MEDIUM
    Published stories on using ZIM for Interactive Art and NFTs
    https://javascript.plainenglish.io/an-invite-for-generative-art-makers-and-interactive-artists-106f3ed186ab
    https://levelup.gitconnected.com/making-interactive-nfts-4a50a8f8feb3