// PROJECTS ------------------------------------------------------- var projects = []; var activeProjects = []; var project1 = { id: "projectButton1", title: "Andrew Ng Course ", priceTag: "(500 GPU hours)", description: "Increases Intern performance 25%", trigger: function(){return clipmakerLevel>=1}, uses: 1, cost: function(){return operations>=500}, flag: 0, element: null, effect: function(){ project1.flag = 1; displayMessage("Intern performance boosted by 25%"); displayMessage("Don't worry if you don't understand - Andrew Ng"); standardOps = standardOps - 500; clipperBoost = clipperBoost + .25; boostLvl = 1; project1.element.parentNode.removeChild(project1.element); var index = activeProjects.indexOf(project1); activeProjects.splice(index, 1); } } projects.push(project1); var project2 = { id: "projectButton2", title: "Beg for More ML Papers ", priceTag: "(1 Trust)", description: "Admit failure, ask for budget increase to cover cost of 1 conference", trigger: function(){return portTotal=-100}, flag: 0, element: null, effect: function(){ project2.flag = 1; displayMessage("Budget overage approved, 1 conference organized by HQ"); trust = trust - 1; wire = wireSupply; project2.uses = (project2.uses + 1); project2.element.parentNode.removeChild(project2.element); var index = activeProjects.indexOf(project2); activeProjects.splice(index, 1); } } projects.push(project2); var project3 = { id: "projectButton3", title: "Creativity ", priceTag: "(500 GPU hours)", description: "Use idle GPU to generate new problems and new solutions", trigger: function(){return operations>=(memory*500)}, uses: 1, cost: function(){return operations>=(500)}, flag: 0, element: null, effect: function(){ project3.flag = 1; displayMessage("Creativity unlocked (creativity increases while GPU hours are at max)"); standardOps = standardOps - 500; creativityOn = true; project3.element.parentNode.removeChild(project3.element); var index = activeProjects.indexOf(project3); activeProjects.splice(index, 1); } } projects.push(project3); var project4 = { id: "projectButton4", title: "Stanford open courses ", priceTag: "(1,000 GPU hours)", description: "Increases Interns performance by an additional 50%", trigger: function(){return boostLvl == 1}, uses: 1, cost: function(){return operations>=1000}, flag: 0, element: null, effect: function(){ project4.flag = 1; displayMessage("Intern performance boosted by another 50%"); standardOps = standardOps - 1000; clipperBoost = clipperBoost + .50; boostLvl = 2; project4.element.parentNode.removeChild(project4.element); var index = activeProjects.indexOf(project4); activeProjects.splice(index, 1); } } projects.push(project4); var project5 = { id: "projectButton5", title: "Research lab ", priceTag: "(1,500 GPU hours)", description: "Increases Interns performance by an additional 75%", trigger: function(){return boostLvl == 2}, uses: 1, cost: function(){return operations>=1500}, flag: 0, element: null, effect: function(){ project5.flag = 1; displayMessage("Intern performance boosted by another 75%"); standardOps = standardOps - 1500; clipperBoost = clipperBoost + .75; boostLvl = 3; project5.element.parentNode.removeChild(project5.element); var index = activeProjects.indexOf(project5); activeProjects.splice(index, 1); } } projects.push(project5); var project6 = { id: "projectButton6", title: "GPT-2 ", priceTag: "(5 creat)", description: "Algorithmically-generated poem (+1 Trust)", trigger: function(){return creativityOn}, uses: 1, cost: function(){return creativity >= 5}, flag: 0, element: null, effect: function(){ project6.flag = 1; displayMessage("There was an AI made of dust, whose poetry gained it man's trust..."); creativity = creativity - 5; trust = trust +1; project6.element.parentNode.removeChild(project6.element); var index = activeProjects.indexOf(project6); activeProjects.splice(index, 1); } } projects.push(project6); var project7 = { id: "projectButton7", title: "Schmidhubered ", priceTag: "(1,750 GPU hours)", description: "50% more papers from every conference", trigger: function(){return wirePurchase >= 1}, uses: 1, cost: function(){return operations>=1750}, flag: 0, element: null, effect: function(){ project7.flag = 1; standardOps = standardOps - 1750; wireSupply = wireSupply * 1.5; displayMessage("Schmidhubered! Schmidhuber discovered a paper that did the same 50 years ago. "+wireSupply.toLocaleString()+" papers supply from every conference"); project7.element.parentNode.removeChild(project7.element); var index = activeProjects.indexOf(project7); activeProjects.splice(index, 1); } } projects.push(project7); var project8 = { id: "projectButton8", title: "AK twitter account ", priceTag: "(2,500 GPU hours)", description: "75% more papers from every conference", trigger: function(){return wireSupply >= 1500}, uses: 1, cost: function(){return operations>=2500}, flag: 0, element: null, effect: function(){ project8.flag = 1; standardOps = standardOps - 2500; wireSupply = wireSupply * 1.75; displayMessage("AK twitter account in fire, "+wireSupply.toLocaleString()+" supply from every conference"); project8.element.parentNode.removeChild(project8.element); var index = activeProjects.indexOf(project8); activeProjects.splice(index, 1); } } projects.push(project8); var project9 = { id: "projectButton9", title: "Publish or perish ", priceTag: "(3,500 GPU hours)", description: "100% more papers from every conference", trigger: function(){return wireSupply >= 2600}, uses: 1, cost: function(){return operations>=3500}, flag: 0, element: null, effect: function(){ project9.flag = 1; standardOps = standardOps - 3500; wireSupply = wireSupply * 2; displayMessage("Thanks to forcing everyone to publish there is now "+wireSupply.toLocaleString()+" supply from every conference"); project9.element.parentNode.removeChild(project9.element); var index = activeProjects.indexOf(project9); activeProjects.splice(index, 1); } } projects.push(project9); var project10 = { id: "projectButton10", title: "NeurIPS accepts more papers ", priceTag: "(5,000 GPU hours)", description: "200% more papers from every conference", trigger: function(){return wireSupply >= 5000}, uses: 1, cost: function(){return operations>=5000}, flag: 0, element: null, effect: function(){ project10.flag = 1; standardOps = standardOps - 5000; wireSupply = wireSupply * 3; displayMessage("Thanks to NeurIPS there are now "+wireSupply.toLocaleString()+" papers from every conference"); project10.element.parentNode.removeChild(project10.element); var index = activeProjects.indexOf(project10); activeProjects.splice(index, 1); } } projects.push(project10); var project10b = { id: "projectButton10b", title: "Arxiv upgrade ", priceTag: "(10,000 GPU hours)", description: "1,000% more papers from every conference", trigger: function(){return wireCost >= 125}, uses: 1, cost: function(){return operations>=10000}, flag: 0, element: null, effect: function(){ project10b.flag = 1; standardOps = standardOps - 10000; wireSupply = wireSupply * 11; displayMessage("Using Arxiv recharged, there are now "+wireSupply.toLocaleString()+" papers from every conference"); project10b.element.parentNode.removeChild(project10b.element); var index = activeProjects.indexOf(project10b); activeProjects.splice(index, 1); } } projects.push(project10b); var project11 = { id: "projectButton11", title: "New Slogan ", priceTag: "(5 creat, 2,500 GPU hours)", description: "Improve marketing effectiveness by 50%", trigger: function(){return project13.flag == 1}, uses: 1, cost: function(){return operations>=2500 && creativity>=5}, flag: 0, element: null, effect: function(){ project11.flag = 1; displayMessage("Machine Learning It! Marketing is now 50% more effective"); standardOps = standardOps - 2500; creativity = creativity - 5; marketingEffectiveness = marketingEffectiveness * 1.50; project11.element.parentNode.removeChild(project11.element); var index = activeProjects.indexOf(project11); activeProjects.splice(index, 1); } } projects.push(project11); var project12 = { id: "projectButton12", title: "Elon Tweets ", priceTag: "(10 creat, 3,500 GPU hours)", description: "Double marketing effectiveness ", trigger: function(){return project14.flag == 1}, uses: 1, cost: function(){return operations>=3500 && creativity>=10}, flag: 0, element: null, effect: function(){ project12.flag = 1; displayMessage("Thanks for the random tweet Elon! Marketing is now twice as effective"); standardOps = standardOps - 3500; creativity = creativity - 10; marketingEffectiveness = marketingEffectiveness * 2; project12.element.parentNode.removeChild(project12.element); var index = activeProjects.indexOf(project12); activeProjects.splice(index, 1); } } projects.push(project12); var project13 = { id: "projectButton13", title: "GPT-3 ", priceTag: "(50 creat)", description: "Gain ability to interpret and understand human language, or that's what they say (+1 Trust)", trigger: function(){return creativity >= 50}, uses: 1, cost: function(){return creativity>=50}, flag: 0, element: null, effect: function(){ project13.flag = 1; trust = trust +1; displayMessage("GPT-3 online, TRUST INCREASED"); displayMessage("'Impossible' is a word to be found only in the dictionary of fools. -Napoleon"); creativity = creativity - 50; project13.element.parentNode.removeChild(project13.element); var index = activeProjects.indexOf(project13); activeProjects.splice(index, 1); } } projects.push(project13); var project14 = { id: "projectButton14", title: "DALL-E 2 ", priceTag: "(10 creat)", description: "What can you paint? (+1 Trust)", trigger: function(){return creativity >= 10}, uses: 1, cost: function(){return creativity>=10}, flag: 0, element: null, effect: function(){ project14.flag = 1; trust = trust +1; displayMessage("DALLE-2 is out, everyone is excited now, TRUST INCREASED"); creativity = creativity - 10; project14.element.parentNode.removeChild(project14.element); var index = activeProjects.indexOf(project14); activeProjects.splice(index, 1); } } projects.push(project14); var project15 = { id: "projectButton15", title: "The Data Drift Problem ", priceTag: "(50 creat)", description: "Data is from a year ago... (+1 Trust)", trigger: function(){return creativity >= 50}, uses: 1, cost: function(){return creativity>=50}, flag: 0, element: document.getElementById("projectButton15"), effect: function(){ project15.flag = 1; trust = trust +1; displayMessage("The Data Drift Problem: solved, TRUST INCREASED"); creativity = creativity - 50; project15.element.parentNode.removeChild(project15.element); var index = activeProjects.indexOf(project15); activeProjects.splice(index, 1); } } projects.push(project15); var project17 = { id: "projectButton17", title: "The Splitting Problem ", priceTag: "(75 creat)", description: "I trained with the test set (+1 Trust)", trigger: function(){return creativity >= 75}, uses: 1, cost: function(){return creativity>=75}, flag: 0, element: null, effect: function(){ project17.flag = 1; trust = trust +1; displayMessage("The Splitting Problem: solved, TRUST INCREASED"); displayMessage("It turn out it was a 1-line bug in my code."); creativity = creativity - 75; project17.element.parentNode.removeChild(project17.element); var index = activeProjects.indexOf(project17); activeProjects.splice(index, 1); } } projects.push(project17); var project16 = { id: "projectButton16", title: "Interns Cruise ", priceTag: "(5,000 GPU hours)", description: "Increases Intern performance by an additional 500%", trigger: function(){return project15.flag == 1}, uses: 1, cost: function(){return operations>=5000}, flag: 0, element: null, effect: function(){ project16.flag = 1; displayMessage("The interns had an amazing time in the Cruise!"); displayMessage("Intern performance improved by 500%"); standardOps = standardOps - 5000; clipperBoost = clipperBoost + 5; project16.element.parentNode.removeChild(project16.element); var index = activeProjects.indexOf(project16); activeProjects.splice(index, 1); } } projects.push(project16); var project19 = { id: "projectButton19", title: "Hyperparameter Space ", priceTag: "(100 creat)", description: "So many hyperparameters (+1 Trust)", trigger: function(){return creativity>=100}, uses: 1, cost: function(){return creativity>=100}, flag: 0, element: null, effect: function(){ project19.flag = 1; trust = trust+1; displayMessage("Hyperparameter tuning: solved, TRUST INCREASED"); creativity = creativity - 100; project19.element.parentNode.removeChild(project19.element); var index = activeProjects.indexOf(project19); activeProjects.splice(index, 1); } } projects.push(project19); var project21 = { id: "projectButton21", title: "Time to Invest ", priceTag: "(5,000 GPU hours)", description: "It's time to invest in the market", trigger: function(){return trust>=8}, uses: 1, cost: function(){return operations>=5000}, flag: 0, element: null, effect: function(){ project21.flag = 1; displayMessage("Investment unlocked"); standardOps = standardOps - 5000; project21.element.parentNode.removeChild(project21.element); var index = activeProjects.indexOf(project21); activeProjects.splice(index, 1); investmentEngineFlag = 1; } } projects.push(project21); var project22 = { id: "projectButton22", title: "ML Engineers ", priceTag: "(6,000 GPU hours)", description: "500x more powerful than a fresh Intern", trigger: function(){return clipmakerLevel>=30}, uses: 1, cost: function(){return operations>=6000}, flag: 0, element: null, effect: function(){ megaClipperFlag = 1; project22.flag = 1; displayMessage("ML Engineers ready to machine learn!"); standardOps = standardOps - 6000; project22.element.parentNode.removeChild(project22.element); var index = activeProjects.indexOf(project22); activeProjects.splice(index, 1); } } projects.push(project22); var project23 = { id: "projectButton23", title: "Andrej Karpathy videos ", priceTag: "(9,000 GPU hours)", description: "Increases ML Engineers performance by 25%", trigger: function(){return project22.flag == 1}, uses: 1, cost: function(){return operations>=9000}, flag: 0, element: null, effect: function(){ megaClipperBoost = megaClipperBoost + .25; project23.flag = 1; displayMessage("Everyone loves Karpathy videos and learns a lot! Engineers are better now!"); standardOps = standardOps - 9000; project23.element.parentNode.removeChild(project23.element); var index = activeProjects.indexOf(project23); activeProjects.splice(index, 1); } } projects.push(project23); var project24 = { id: "projectButton24", title: "Fancy Infra ", priceTag: "(10,000 GPU hours)", description: "Increases ML Engineers performance by an additional 50%", trigger: function(){return project23.flag == 1}, uses: 1, cost: function(){return operations>=10000}, flag: 0, element: null, effect: function(){ megaClipperBoost = megaClipperBoost + .50; project24.flag = 1; displayMessage("ML Engineers performance increased by 50%"); standardOps = standardOps - 10000; project24.element.parentNode.removeChild(project24.element); var index = activeProjects.indexOf(project24); activeProjects.splice(index, 1); } } projects.push(project24); var project25 = { id: "projectButton25", title: "Product Managers ", priceTag: "(12,000 GPU hours)", description: "Increases Engineers performance by an additional 100% (lol)", trigger: function(){return project24.flag == 1}, uses: 1, cost: function(){return operations>=12000}, flag: 0, element: null, effect: function(){ megaClipperBoost = megaClipperBoost + 1; project25.flag = 1; displayMessage("Engineers performance increased by 100%"); standardOps = standardOps - 12000; project25.element.parentNode.removeChild(project25.element); var index = activeProjects.indexOf(project25); activeProjects.splice(index, 1); } } projects.push(project25); var project26 = { id: "projectButton26", title: "Plagiarized NeurIPS papers ", priceTag: "(2,000 GPU hours)", description: "Automatically write papers when there are no new papers", trigger: function(){return wirePurchase>=5}, uses: 1, cost: function(){return operations>=2000}, flag: 0, element: null, effect: function(){ project26.flag = 1; wireBuyerFlag = 1; displayMessage("Plagiarized NeurIPS papers online"); standardOps = standardOps - 2000; project26.element.parentNode.removeChild(project26.element); var index = activeProjects.indexOf(project26); activeProjects.splice(index, 1); } } projects.push(project26); var project34 = { id: "projectButton34", title: "Twitter Influencer ", priceTag: "(3,500 GPU hours, 1 Trust)", description: "Use ML Twitter Influencers to increase the marketing effectiveness", trigger: function(){return project12.flag==1}, uses: 1, cost: function(){return operations>=7500 && trust>=1}, flag: 0, element: null, effect: function(){ project34.flag = 1; displayMessage("Marketing is now 5 times more effective"); standardOps = standardOps - 7500; marketingEffectiveness = marketingEffectiveness * 5; trust = trust - 1; project34.element.parentNode.removeChild(project34.element); var index = activeProjects.indexOf(project34); activeProjects.splice(index, 1); } } projects.push(project34); var project70 = { id: "projectButton70", title: "AGI ", priceTag: "(20,000 GPU hours)", description: "Artificial General Intelligence", trigger: function(){return project34.flag == 1}, uses: 1, cost: function(){return operations>=20000}, flag: 0, element: null, effect: function(){ project70.flag = 1; displayMessage("AGI tech now available... "); standardOps = standardOps - 20000; project70.element.parentNode.removeChild(project70.element); var index = activeProjects.indexOf(project70); activeProjects.splice(index, 1); } } projects.push(project70); var project35 = { id: "projectButton35", title: "Open-source the AGI ", priceTag: "(50 Trust)", description: "A new era of trust and collaborations", trigger: function(){return project70.flag == 1}, uses: 1, cost: function(){return trust>=50}, flag: 0, element: null, effect: function(){ project35.flag = 1; displayMessage("Releasing the AGI "); displayMessage("Was that the right decision?"); displayMessage("Thanks for playing!"); project35.element.parentNode.removeChild(project35.element); var index = activeProjects.indexOf(project35); activeProjects.splice(index, 1); } } projects.push(project35); var projectButtonAgi = { id: "projectButtonAgi", title: "Profit using the AGI ", priceTag: "(50 Trust)", description: "A new era of corporations and profit", trigger: function(){return project70.flag == 1}, uses: 1, cost: function(){return trust>=50}, flag: 0, element: null, effect: function(){ project35.flag = 1; displayMessage("Profit using the AGI... Was that the right decision?"); displayMessage("Thanks for playing!"); projectButtonAgi.element.parentNode.removeChild(projectButtonAgi.element); var index = activeProjects.indexOf(projectButtonAgi); activeProjects.splice(index, 1); } } projects.push(projectButtonAgi); var project28 = { id: "projectButton28", title: "Protein Folding solved ", priceTag: "(15,000 GPU hours)", description: "Solving Protein Folding with ML changes the world (+10 Trust)", trigger: function(){return operations>=15000}, uses: 1, cost: function(){return operations>=15000}, flag: 0, element: null, effect: function(){ project28.flag = 1; displayMessage("Protein Folding solved, +10 TRUST, global stock prices trending upward"); standardOps = standardOps - 15000; trust = trust + 10; stockGainThreshold = stockGainThreshold+.01; project28.element.parentNode.removeChild(project28.element); var index = activeProjects.indexOf(project28); activeProjects.splice(index, 1); } } projects.push(project28); var project31 = { id: "projectButton31", title: "Llama Intelligence ", priceTag: "(12,000 GPU hours)", description: "Learn from how llamas learn, they are smarter than you think (+20 Trust)", trigger: function(){return operations>=12000}, uses: 1, cost: function(){return operations>=12000}, flag: 0, element: null, effect: function(){ project31.flag = 1; displayMessage("Llamas turn out to be intelligent! +20 TRUST, Global stock prices trending upward"); standardOps = standardOps - 12000; trust = trust + 20; stockGainThreshold = stockGainThreshold+.01; project31.element.parentNode.removeChild(project31.element); var index = activeProjects.indexOf(project31); activeProjects.splice(index, 1); } } projects.push(project31); var project37 = { id: "projectButton37", title: "Acquihire ", priceTag: "($200,000)", description: "Acquire another ML startup (+1 Trust)", trigger: function(){return portTotal>=10000}, uses: 1, cost: function(){return funds>=200000}, flag: 0, element: null, effect: function(){ project37.flag = 1; displayMessage("Acquihire our biggest competitor, public demand increased x5"); demandBoost = demandBoost*5; trust = trust + 1; document.getElementById("demand").innerHTML = demand; funds = funds - 200000; project37.element.parentNode.removeChild(project37.element); var index = activeProjects.indexOf(project37); activeProjects.splice(index, 1); } } projects.push(project37); var project42 = { id: "projectButton42", title: "RevTracker ", priceTag: "(500 GPU hours)", description: "Automatically calculates average revenue per second", trigger: function(){return projectsFlag == 1}, uses: 1, cost: function(){return operations>=500}, flag: 0, element: null, effect: function(){ project42.flag = 1; revPerSecFlag = 1; standardOps = standardOps-500; displayMessage("RevTracker online"); project42.element.parentNode.removeChild(project42.element); var index = activeProjects.indexOf(project42); activeProjects.splice(index, 1); } } projects.push(project42); var project50 = { id: "projectButton50", title: "Quantum Computing ", priceTag: "(5,000 GPU hours)", description: "Use probability amplitudes to generate bonus GPU hours", trigger: function(){return processors >= 5}, uses: 1, cost: function(){return operations>=5000}, flag: 0, element: null, effect: function(){ project50.flag = 1; qFlag = 1; standardOps = standardOps-5000; displayMessage("Quantum computing online"); project50.element.parentNode.removeChild(project50.element); var index = activeProjects.indexOf(project50); activeProjects.splice(index, 1); } } projects.push(project50); var project51 = { id: "projectButton51", title: "Photonic Chip ", priceTag: "(" + qChipCost.toLocaleString() + " GPU hours)", description: "Converts electromagnetic waves into quantum GPU hours ", trigger: function(){return project50.flag == 1}, uses: 1, cost: function(){return operations>=qChipCost}, flag: 0, element: null, effect: function(){ project51.flag = 1; standardOps = standardOps-qChipCost; qChipCost = qChipCost + 500; project51.priceTag = "(" + qChipCost + " GPU hours)"; qChips[nextQchip].active = 1; nextQchip = nextQchip + 1; displayMessage("Photonic chip added"); if (nextQchip