Get Started
Progress
COLLABORATE

Start a project

Share your vision and we’ll craft a strategy to bring it to life
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Project Overview

Tell us about your project

Share the juicy details about your projects, and we'll craft a project brief, production schedule, and figure out which service plan best suits your organization's needs.

(add key points)

(Brand clarity, launch, conversions, redesign, etc.)

(Age, demographics, behavior, interests)

(Sizes, formats, platforms, integrations, etc.)

(Company names, links to websites/accounts/influencers you admire and want to model your business after)

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
check

Your request was successfully submitted

We’ve received your details and your call is officially scheduled. In the meantime, keep an eye on your inbox for a message from the team reaching out.

Talk soon!

-Cactus Team

Back to home
/*! Grained.js * Author : Sarath Saleem - https://github.com/sarathsaleem * MIT license: http://opensource.org/licenses/MIT * GitHub : https://github.com/sarathsaleem/grained * v0.0.1 */ !function(a,b){"use strict";function c(a,c){function d(a,b,c,d){var e="";e=b.length?b+"{"+c+"}":c,"insertRule"in a?a.insertRule(e,d):"addRule"in a&&a.addRule(b,c,d)}var e=null,f=null,g=null;if("string"==typeof a&&(e=b.getElementById(a.split("#")[1])),!e)return void console.error("Grained: cannot find the element with id "+a);f=e.id,"absolute"!==e.style.position&&(e.style.position="relative"),e.style.overflow="hidden";var h=["","-moz-","-o-animation-","-webkit-","-ms-"],i={animate:!0,patternWidth:100,patternHeight:100,grainOpacity:.1,grainDensity:1,grainWidth:1,grainHeight:1,grainChaos:.5,grainSpeed:20};Object.keys(c).forEach(function(a){i[a]=c[a]});for(var j=function(){var a=b.createElement("canvas"),c=a.getContext("2d");a.width=i.patternWidth,a.height=i.patternHeight;for(var d=0;d