To celebrate the upcoming 4th of July holiday I made a project called Conway’s Fireworks:

If the above embed isn’t working, you can also check it out here

In this post, I’d like to take you through some of my thinking when creating this project, and also some of the technical details of how it was coded. I’ll be talking about the following parts of the project:


Conceptualizing the Project

I wanted to make an animation to celebrate the 4th of July.  Of course the first thing anyone thinks of when they think of the 4th of July is fireworks. There’s a large volume  of great fireworks canvas animations out there already. I wanted to do something special to make mine stand out.

gospel gliders from Conway’s Game of Life

Now, If you’re not familiar with the famous automaton algorithm “Conway’s Game of Life”, (pictured above) definitely go check it out here: https://bitstorm.org/gameoflife/. The game of life is part of a class of algorithms called cellular automatons, and it has some pretty interesting behavior. The basic rules for the algorithm are fairly simple:

A great illustration of the rules of the Game of Life from

Although the simulation works off of just these 4 rules, lots of really interesting and complex behavior comes out of these simple rules. Conway’s game of life is a textbook example of emergence.

Even though John Conway himself is not too fond of the algorithm, It has always captured my imagination. So when I sat down to work on this project, the Game of Life was one of the first things that popped into my head as something different I could try out. The way the shapes tend to sort of explode outwards seemed like the perfect fit for how a firework behaves.


Ideas into Reality:

So I had my basic idea down. I would make each individual firework its own tiny Game of Life simulation. The trick now was to turn this idea into code. As with many of my projects, I used the P5 processing library and the html5 canvas. I like to work in this library because it speeds up development and makes drawing to the canvas easy. I like to work in JavaScript because then I can share my projects on the web.

The first step was to make on object prototype for my fireworks. I appropriately named this object “Conway” and filled it out with some basic fields to control the color, position, size, and so on. The grid variable simply contains a 2d array of values, true/false, for if a cell is on or off.

function Conway(){
  this.x = floor(random()*width);
  this.y = floor(random()*height*.7);
  this.type = floor(random()*3);
  this.size = random()*2;
  this.baseHue = random()*360;
  this.hueSwap = random()*30 + 60;
  this.gridSize = 61;
  if (this.gridSize%2 == 0) this.gridSize;
  this.center = floor(this.gridSize/2);
  this.numTicks = 0;
  this.finished = false;
  this.grid = [];
}

Here I’m hardcoding a lot of values, which is generally bad practice. I think in the future I will come back and make some global variables for things like the grid size or how much hue variance there should be.

Now that we have the skeleton of a Game of Life simulation we need to add two more components – a way to update it, and a way to display it to the screen. For me, I usually add these as functions in the object prototype in the form of a tick and render function. This is nice because it pushes the responsibility for updating and drawing the object to the object itself. When it comes time to run the project, all we have to do is call tick and render for each object currently in a list of drawables like so:

function draw(){
  for (var i = 0; i < drawables.length; i++){
    drawables[i].tick();
    drawables[i].render();
  }
}

The render function for our game is fairly simple to write. we simply draw a rectangle for each cell in our 2d array that has a value of true. The update function took a little bit more thought. To properly update the simulation, we need to apply the rules of the Game of life to each cell in the grid. One mistake I made early on was only having a single 2d array to store the values. In actuality we need 2 separate grids, because we can’t be overwriting the data from our first array with the new values until we have looked through the entire array. The final update function looked something like this:

this.tick = function(){
  var ind = (this.numTicks%2);
  for (var i = 0; i < this.gridSize; i++){
    for (var j = 0; j < this.gridSize; j++){
      var neighbors = 0;
      for (var k = 0; k < dirs.length; k++){                  
        var dx = i+dirs[k][0];                  
        var dy = j+dirs[k][1];                  
        if (dx >= 0 && dy >= 0 && 
          dx < this.gridSize-1 && dy < this.gridSize-1){
          if (this.grid[ind][dx][dy]) neighbors++;
        }
      }
      if ((this.grid[ind][i][j] && 
          (neighbors == 2 || neighbors == 3)) ||
          (!this.grid[ind][i][j] && neighbors == 3)){
        this.grid[(ind+1)%2][i][j] = true;
      } else {
        this.grid[(ind+1)%2][i][j] = false;
      }
    }
  }
  this.numTicks++;
}

This looks pretty complicated, but really all its doing is going through each cell in the grid and applying our 4 basic rules of the Game of Life simulation to them. the “ind” variable (short for “index”) simply lets me switch between which of my 2d arrays I’m looking at when I check which cells are alive or dead. The “numTicks” variable updates by one each time the tick function is called.

To make checking the 8 neighbors of each cell easier, I created a global array called “dirs” (short for “directions”) which contains the dx, dy values for each of the 8 neighboring cells.

The final hurdle was to get the “fireworks” to behave like an actual firework. This means that the fireworks have to be symmetrical about the center point. I had to think a little bit on how to do this. The trick is to separate the grid into quadrants, then randomly speckle alive cells into one of the quadrants (I picked the upper left quadrant). To make it look symmetrical, I then “flip” or “rotate” this quadrant onto the other 3 quadrants to make the “seed” for the shape. To do this, I simply added a bit of code that generates these quadrants when the object is created:

for (var i = 0; i < 10; i++){
  for (var j = 0; j < 10; j++){          
    if (random() > .5){
      this.grid[0][this.center-i][this.center-j] = true;
      this.grid[0][this.center+i][this.center+j] = true;
      this.grid[0][this.center+i][this.center-j] = true;
      this.grid[0][this.center-i][this.center+j] = true;
    }
  }
}

The great thing about this is that because of the nature of the Game of Life, when you create a symmetrical seed, the rest of the game of life is naturally symmetrical about that center point!

Success!

That seemed to do the trick!


Touch-ups and Visuals:

Now that the core of the project is working, its time to start cleaning up the visuals. I find that this is always the most time consuming part of the project. I can spend hours making little tweaks to the look and feel of a canvas animation.

For starters, My fireworks felt really unrealistic. The Game of Life simulation naturally expands outwards, but it didn’t have that “pop and fade” feeling of a real firework.

To add that in, I added a couple of rules to my render function. I made the size and opacity values of the firework a function of how long it was on the screen for. A linear transition felt pretty unnatural, so I used the built in P5 pow function to create a quadratic curve for my size and opacity. By doing this, The fireworks expand outward really quickly in the beginning, and then have a slow fade out as their expansion slows down. Here’s what that looks like in code:

this.render = function(){
  this.numTicks++;
  var mod = pow(((48-this.numTicks)/40),2);
  this.size += mod*.5;
  var ind = this.numTicks%2;
  translate(this.x, this.y);
  scale(this.size);
  for (var i = 0; i < this.gridSize; i++){
    for (var j = 0; j < this.gridSize; j++){
      if (this.grid[ind][i][j]){
        fill(this.baseHue + random()*this.hueSwap, 
             100, 100, mod*100);
        rect(i-this.center, j-this.center, 1, 1);
      }
    }
  }
}

In this case the “mod” variable is doing the heavy lifting of offsetting the size and opacity

Once I had that down the fireworks felt pretty natural, but I didn’t like that they were just sort of free floating in a black void.

To add some decoration to the scene, I added in some stars and hills to sort of round out the visuals and give it some aesthetics. The hills are simple sine curves with some offset by distance. For the stars, I decided to make them little squares and to make them “sparkle” a little by randomly changing the intensity and hue of the color by a little bit.

Conclusion:

I hope you all enjoyed reading this post! Let me know in the comments if you liked this and you would like to see more of these types of posts. Also let me know if you found my explanations useful or if there is anything I can do to improve my code or writing.

Whenever you are doing creative work, there will always be some things that you aren’t completely happy with. I think if I come back to this project I will clean up the code a little and change some of those hard-coded values into global variables. Also, I think I would spend a little bit of time tweaking the visuals for the fireworks, maybe changing how the curves work for the expansion and fade out animations.

All in all though, I’m pretty happy with this project. I think it was a neat idea, and I’m really pleased with how it turned out!

Thanks for reading!

— Ben

We’re picking this blog back up again!

After almost 3 years of inactivity, Connor and I have decided to start posting again. Hoorah!

It’s been a long time since we last posted. A lot has happened in the time in between. I’m still going to school at the University of New Mexico; still cranking away at that CS degree. I started working for a digital experience startup called Storylab, where I’ve been doing some work for them in Unity and JavaScript. Also, I started TA-ing for an introductory JavaScript course where I was introduced to P5.js, a JavaScript library for drawing to the canvas. I absolutely love working with P5, and so for the last year I’ve been posting a lot of my work to a great site called CodePen.

I’ve been doing a lot of side coding projects – several of them even making it to the front page of CodePen. I’ve made lots of cool programs like fractals, tree generators, spirographs, and wiggly elastic grids, but lately I’ve been feeling like my work is stagnating. I still think my projects are fun, but I need to branch out into new territory.

After talking with Connor about my problem, he had an interesting insight. He said that while my projects were interesting, they didn’t capture peoples’ attention because they didn’t have a narrative. I need to create a story behind my projects to keep them engaging and fun.

With that in mind, I’d like to transition into writing more posts on my projects and ideas. My hope is that by writing about my projects, I can not only provide that missing narrative, but also get some practice in creating stories and content for my projects. (Of course, I’m always interested to hear our readers feedback on these projects as well!)

Sometimes I’ll post about my projects, or an idea that I have for a project. Sometimes I might post technical tutorials on how to code, or how to approach coding something. Of course I’ll still post about other topics, but that’s what I’d like to focus on for now.

So I hope you all find this blog interesting! We’ll try to keep you entertained with our posts (and try to post slightly more often than once every 3 years).

Exercise is hard. That’s a conclusion most people come to without much effort. With the luxury of modern day living comes freedom from physical labor as a need for survival. Most people in today’s western societies get the option of a fairly sedentary lifestyle. It should come as no surprise, then, that most people find it hard to get in shape – in reality, the majority of us have no need to.

So getting in shape is hard, and it always will be. Personally, it’s always been hard for me to convince myself to go out and run, or go lift some weights. It’s a struggle that’s gotten a lot easier since I got into college. When you’re around people who are active (or if you have the bad judgment to enroll in a 7am weight training course) It’s a lot easier to motivate yourself to get in shape. I was really surprised, though, to find that beyond the simple struggle of just getting to the gym, there are a lot of things they don’t tell the newbies about the path from unfit to fit.

The first thing I noticed when I started working out was how tired I felt all the time. You think to yourself “Hey, exercising is going to give me so much more energy to do things!”. No. No, It doesn’t. Not in the beginning at least. Workouts would leave me feeling exhausted rather than energized. All that new stress on your body really starts to wear you down. It takes a long time for your body to readjust, especially if you go right from a sedentary lifestyle (working a graveyard shift) to an active one. It doesn’t last forever, but it can be discouraging in the beginning.

Your hands are also going to suffer. Especially if you’re lifting. After several weeks of lifting weights I started to develop huge callouses on each finger. All that tension against the skin really does a number on your hands. I started to feel like some sort of thick fingered dwarf from middle earth. If you’re especially crazy like I am, you pick up an adventure sport like climbing. All those new callouses? Yeah… those got torn off each time I lost my grip on the wall. After a while my hands started to look like this:

ZiOia1r

Pictured above: not my hands (image credit: http://therxreview.com/review-climb-on/)

Gauze is your best friend in this case.

If you started running get prepared for this or worse on your feet as well. Blisters from hell my friends. After a 5 mile run; your shoes rubbing against your feet, you are not going to be a happy camper. It takes time to build up those callouses to the point where you don’t have to worry about them anymore. Get ready for several months of sore extremities.

While we’re on the subject of soreness, expect a whole bundle of sore muscles. Sometimes I’d be sitting in class and raise my hand to answer a question: WHAM! next thing I know my shoulder is in intense pain. Why? Oh yeah, I just did shoulders and traps in the gym yesterday. Soreness will rear its ugly head in weird everyday situations, and not just in your run-of-the-mill muscles either. Look forward to your first leg day. I was limping for a solid 36 hours afterwards!

One of the weirdest things though is the crazy side affects. Beyond soreness, sometimes an intense workout will do all sorts of strange and unnerving things to the body. Once (after a combo pecks and running day) I found that my vision was so screwed up that I couldn’t even see straight for about an hour. Something about all the stress I was putting on my body must have put a lot of pressure on my eyes – the whole world was out of focus all the way through my post-workout breakfast. Another time, after some vigorous cardio, I kept getting sharp little chest pains that took several hours to completely fade away. These type of things can be scary. Unfortunately, I’ve also been told they’re not all that uncommon.

You should also expect yourself to puke a few times. This is a given, and there’s really just no way around it. When I was in high school (and in shape) my coach used to tell us “pain is just weakness leaving the body!”. After I threw up at practice once, he told me I had done a good job, presumably because I was getting rid of a lot of “weakness”. Putting your body through that much stress can have some unfortunate consequences.

It’s not all bad. I don’t want to act like there aren’t any benefits, because there are good things that happen too – even if they were a little unexpected.

Beyond the obvious (big muscles, slimmer waistline), there are some pretty cool perks too. When you start working out, you are making you’re muscles more efficient. But, you’re not just making it easier to lift things, you’re also making your organs work better and your internal cycles feel the difference. I was completely not expecting that things like my diet and my erm… ‘daily bowel activity’ would be changing as a result of the exercise I was doing. In a lot of ways, this was a good thing. My body started to regulate itself better. I started getting better sleep. I was able to eat more. I had more regular bowel movements. It’s gross, but it really does make your body more efficient in more ways than one.

On that subject though, you’re going to be draining a lot of toxins from your body in a fairly short amount of time. It’s a good thing, but getting rid of them is… uncomfortable to say the least.

Getting in shape wasn’t all roses and buttercups, but it was definitely worth it. Now that the big changes to my body have happened, I feel a lot better. I’m more focused and I have more stamina. Getting in shape has allowed me to pursue adventure activities like climbing, and have more energy after a long day to get things done.  It’s still a struggle to improve. I think the zero-to-hero stories are less common than the fitness trainers would have you believe, but getting in shape is certainly a wild ride. At least, it was for me.

The takeaway is this: shifting into an active lifestyle is weird, uncomfortable, gross, and physically and mentally exhausting. Does this mean it’s not worth it? absolutely not. Just don’t be surprised if you get the shits after a long run. Pro-tip – invest in talcum powder and spandex. the chaffing is not fun!

I love Blue Mt. Dew. That combination of raspberry, ginger and massive amounts of sugar sets my mouth watering and my mind racing pleasurably towards smooth decision-making. I find that sugared-up, whether it be a placebo or otherwise a dopamine reward, I am able to focus much longer on generally unpleasant tasks, like math homework. I know this as empirically tested fact, because I spent the last month testing it.

You see, there’s a life-hack out there which directs us to smell incense while studying to associate that smell with the subject. When we take the test, we simply expose ourselves to that smell, and voila! an instant A. I took this to the next level. For a month and a half, three times a week, I drank a bottle of Blue Mt. Dew during math class. I perched my chin on the bottle and listened to the lecture, to focus on that sweet, nectary smell. I rewarded myself with an ice-cold sip every time I got an answer right. And you know what? It worked brilliantly. It worked so well that I should revise my previous statement completely: I used to love Mt. Dew. Now I associate it with math. I’ve had so much of the stuff that I hate it on that basis alone, and it’s association with math makes me hate math too. I look at an equation now and smell ginger, like i’m having a mild epileptic attack.

But I wasn’t going to let this stop me, so I arrived early for the midterm on Friday and stopped by the student store to complete my experiment. But you know, I go to a small, poor community college, and I had bought every single Blue Mt. Dew they had. They were out, and I took the test while nursing a Coca-Cola because I had addicted myself to massive amounts of sugar.

I told this later to several people and they all said the same thing, “Connor! That’s like something out of Seinfeld! The Big Bang Theory! Friends!” I’m like, “Yeah, that’s because I’m an idiot, and these things happen to idiots.” Because you know, when smart people experiment with their bodies, it’s usually not with unhealthy chemicals and the goal of getting out of studying for a math test. What was I thinking?

Which brings me to my next point: I wasn’t. In fact, I deliberately wasn’t thinking about the possible results of my experiment. I was thinking, “Wouldn’t this be cool if it worked?” If it had worked, I would never think on it again and move on to the next thing. Previously, I’ve done things like draw portraits of my professors while they lecture, which did not help me remember their lectures. I’ve said to myself: “If someone asks you to do something, say okay, I’ll do it later, to see if you remember later to do it.” I never got any chores done. Last month, I tied my shoes by looping the lace counter-clockwise around my finger, and then this month I tied them clock-wise. Why? To see if I could change my habits. What I did not try to do was actually change habits that matter.

While I carry one experiments with my life, I deliberately do not think of other experiments I could be doing. What if I did my homework right after school? What if I didn’t play videogames? What if I go to bed early, get up early, and get to work and school with minutes to spare, instead of a few breathless seconds? These experiments are certainly more important, and furthermore, it’s easy to see potential outcomes. I could have less stress, better sleep, more time for productive enterprises like blogging, and hey, let’s throw a girlfriend in there for good measure.

Those changes seem hard to carry out, but they’re also pretty easy to see. But I’m ready to take this thought experiment to the next level. What experiments, changes in my life, am I really not thinking about? What paradigms do I operate on, and which are negative for me? How about I appreciate my parents more, spend less money, or not even that. How about I achieve a more holistic perspective of human nature, or a deeper peace with my choices in life?

In Seinfeld’s final episode, the show was still about nothing. Jerry, Elaine, George and Kramer; they just carry on shooting the shit, while bars close around them and the camera dolleys out for good. There was an odd romanticism in it, like it was where they truly belonged, and it seems that they are still there now, like statues of ogres in Tolkien’s woods. Me, I continue to experiment, scheme, plot for a better life and listen intently to Demetri Martin but I still don’t make changes. Like sitcom characters, I relegate the real issues to the background, in favor of mental gymnastics that distract me when I am the only audience to my own life. I almost wish there was a laugh track to keep me company, to show me when to just laugh at myself, to add meaning to empty gestures.

For Russia, Christmas arrived several months early, when Ukraine ratified an agreement giving temporary autonomy to the areas of Luhansk and Donetsk and amnesty for Russian volunteers there. An eternity ago, when Russia initially annexed Crimea and supported rebels in Eastern Ukraine, this was the outcome Putin chose.

This previous spring, Russia’s aggression seemed irrational. What were they going to reasonably gain? The apparent answer: A few drops of oil and awkward access to the Black Sea, against economic sanctions that have now pushed the Ruble to dangerous lows and the ire of Nato, Europe, and the other satellites like Finland and Kazakhstan. Yet Russia continued to push when only future pain seemed certain. The question then became; how far were they willing to go? Were they going to invade Ukraine?

Full-scale invasion seemed even more ridiculous, yet Russia pushed right up to that point, (some would even admit, past it) moving whole divisions inside Ukrainian territory and opening up new fronts, like Mariupol. And furthermore, here we are, with a cease-fire that merely helps to decentralize the Ukrainian government in three years. To a casual western observer, the only plausible explanation is that Putin truly wants Ukraine on some passionate, nationalist, elemental level of his being, so much that he is willing to cut Russia off from Europe’s economy, alienate any true friends he has and swing whole swaths of his nation into poverty over rising food prices. Furthermore, it looks at first glance as if he has failed.

But this is where Baduk, or Go, comes in. (For those of you who don’t know how to play Go, learn.) Early last year The West approached Russia’s corner in Ukraine by tempting Ukraine with a membership in the EU. This was an easy opening in The East’s defenses, brought by Russia’s dependence on high extended positions – their satellites, if you will. Russia, however, was not about to let The West uproot Ukraine without any sort of repercussions. So, Russia’s next move was to gently push back by pressuring Ukraine’s then-president, Viktor Yanukovych, to clamp down on western supporters within his country, and withhold interest in an EU membership. At this point in time, it was business as usual in world politics, with different countries exerting safe, subtle pressures on their neighbors in the hopes of keeping a status quo where no one could rise as a legitimate threat to other nations.

Board 1

Above, The West, playing white, realizes that Russia’s influence over Ukraine is more important when viewed as influence over the rest of Europe. Russia’s framework up unto this point seemed off-balance, but Russia always planned to be able to exert economic pressure on Ukraine, and in doing so solidify power over the rest of its outlying stones. However, as an up-and-coming economy and one of the three possible natural gas routes from Russia to Germany, Ukraine in Russian hands is too powerful an influence on the European economy. With the marked stone, Europe has attempted to cut off this Russian influence over Ukraine, and extend into the center of a Russian moyo. Russia’s next move, to pressure Ukraine, also functions as a signal to other nations, which in turn makes a white rebuttal crucial, to make it clear to Russia’s satellites that they can escape Russia’s orbit if needed.

Board 2

 

Cue American funding to rebel groups within Ukraine, which destabilizes the country and proverbially separates it from the edge of the board. Now it’s on Russia to make sure it doesn’t lose it’s grasp on Ukraine. At this point, there is no hope in fighting it out and capturing the marked stones: America’s foray into the field has made sure that at least the eastern half of Ukraine is going to be part of the EU. Since the part that Russia had hoped to define in the future, on the second line, has just been defined, it is now imperative for Russia to get something else out of this. Russia needs to refocus on it’s principle strategy- economic influence over the larger board.

Board 3

Instead of playing it safe, letting The West have Ukraine, and re-enforcing it’s control over an already weak economy, Russia funds the separatists in Luhansk and Donetsk. In doing so, the EU is forced to take what openings it has and threaten a major invasion (in Go terms) into Russian territory, using sanctions. But the West can’t go all-out. If it severs all economic ties with Russia, it will leave itself open in the ensuing restructuring and force Russia to take something with equal or greater value- any chance of influence or territory in Russian satellite countries. Fighting with separatists is dangerous, but a practical ko battle involving dozens of points is insane. The EU is a loose organization: It can’t adequately empower it’s member states to make informed, unbiased decisions on the value of large swaths of territory. As a result, it moves slowly, safely, territoriality. However, this forces Russia to get risky, in order to form influence great enough to adequately mount attacks on tight European economic formations. Thus, above we see Russia sacrifice some of its own economic integrity in the hopes that its long-term successes in European markets will render early concessions unnecessary and slow for Europe.

Board 4

Now that there is a cease-fire in Ukraine, it looks as if in the coming years Russia will be able to easily assert control over Eastern Ukraine, or “NovoRossiya.” The West may still be able to bring it inline with the rest of Ukraine, but that would be a waste of time and resources perhaps better spent on other things. Right now, it’s true, there are other fish to fry, and everyone’s going to tenuki. But over the coming months, The West’s ability to keep moving in on Russia’s economy will crumble, as every day that goes by strengthens the EU’s addiction to Eastern natural gas. Also, sanctions are a pretty paltry gesture in the short term, and a good Go player will likewise notice cutting points in the West’s wall that Russia will try to exploit by reorganizing its oil infrastructure and trading much more with developing markets in Africa and South America. And most importantly, over the long term, Russia might attempt to undercut white’s territorial groups. Give it five or ten years, and Ukraine will be ripe to escalate yet again, after other, more valuable moves are played.

That’s the value to likening this situation to Go- it develops in abstraction, so we can see that the bigger picture extends over decades, not months, and each move must be played when the time is right, according to the direction of play. While the world’s attention is devoted to ISIS and Ebola, it may not be the best time to spend resources on fixing the complex hierarchies in Europe. Also, the above is a joseki- an almost inevitable outcome given this exact situation, where both parties have equal access to all the information available, and are both reasonably versed in current strategies. From the beginning, when one move led to another, both parties saw the possible outcomes and forced each other to choose one that didn’t have a clear winner, even though Russia assumed more risk. In Go, this is a good outcome. Less so in real life, for the hundreds of thousands of displaced people in Ukraine, the millions in Europe with uncertain access to winter warmth, and the destitute Russian citizens.

Hold it! As my esteemed colleague Phoenix Wright might say.

There is a fundamental flaw in your argument, my friend. Just because we can identify a difference between simple pleasures (those defined by physical phenomena) and complex pleasures (those defined by cognition and critical reasoning), does not mean that one is necessarily better or more fulfilling than the other.

Stepping down off of Aristotle’s pedestal for a moment, I would like to consider the idea that, not only can your every-man obtain happiness, everybody can obtain happiness.

I’m not talking about a eudemonic sense of subconscious wellbeing. I’m talking about consistent and regular contentment and joy.

The thing is, everybody creates their own definition of what makes them happy based on the relative values of that individual. This relativistic values system means that while you or I might see fulfillment in the completion of a long term project, another might see it in a 6-pack of beer. What I am arguing right now is that neither one of these is any more worthwhile or fulfilling than the other.

As soon as we start to assign subjective values to the worth of various pursuits of our time, we are being inconsiderate of the situation and values of those around us. All happiness is subjective to situation and character. It is borderline contentious to say that any pursuit (setting aside the utilitarian sense) is worth more than any other pursuit outside of our own personal perspective.

It’s all well and good to line pleasures up on a spectrum – perhaps from those that are instinctual to those that are intellectual – but that does not create just cause for distinction of worth. It is possible for many things to be different and equitable at the same time.

On a similar train of thought, I’d like to make the distinction between values and happiness. Values (to a certain extent) are the parameters that define what makes us happy, and what we want to strive for. Just as you cannot assign arbitrary values of worth to happiness, you similarly cannot say that any one value is “higher” or “worth more” than another. To be higher implies superiority. We can arrange values on a scale and define them by region, culture, religion etc. But, we cannot assign worth to these values without imposing our own subjective viewpoint onto others.

“What about Utilitarianism?” cry the peanut gallery! “Egalitarianism!”

To this I say, hold your horses. Even as we begin to look at philosophy that considers the happiness and success of all people in mass such as game theory, GDP focus, majority rule (philosophies that I happen to agree with), we still cannot use these as decisive factors in determining the worth of others actions.

Why not? Well, for precisely the same reason that we can’t objectively assign worth to happiness: whether or not you agree with these philosophies is a reflection of your own personal values and cannot be extrapolated to apply to any other person.

In psychology this concept is referred to as relativism – the idea that “points of view have no absolute truth or validity, having only relative, subjective value according to differences in perception and consideration” [American Heritage Dictionary].

So where does this leave us? Isn’t relativism a slippery slope towards Absurdism?

Well, no not really. Absurdists believe that there is no humanly obtainable value or truth in anything. Much like with Nihilism, this is a moot point. Saying that everything equates to nothing or saying that everything equates to something is the same thing. In the end, the distinction between nothing, and something (1 and 0) is purposeless because the conclusion that life is meaningless doesn’t make life stop existing.

The point I’m trying to make is not that there is no way to define happiness, or no way to guide people to happiness. I don’t believe that. Rather, I am fighting against the contentious notion that any single person is worth more, is doing more, is living a more fulfilling life than any other person. This is plainly untrue. Money, success, intelligence, accomplishment, physical fitness or any other arbitrary value we assign to the worth of someone’s life are horrible indicators, because they are relative to our own personal perspective. Aristotle may have believed himself to be above those around him. I, however, reject that notion.

First off, apologies for being late. School also started for me and it’s likewise been a bit nuts.

Secondly, AHA! I’ve got you! As I suspected, you identified a difference between base pleasures and higher values, and you chose to define different levels (I’m going to call them that for our purposes) of what you want, irrelevant to “happiness.” You also, most damningly, mentioned important values. In short, you described a worldview, or at least, a view towards what you might think is best for your person, that is strikingly similar to Aristotle’s! AHA!

As the man to first coin the term “ethics,” he and his co-conspirators Socrates and Plato have  an indelible mark on American ideology. He also helped congeal a perceived difference between hedonism and a much more puritan ideal of a virtuous person. Classic Hedonists would not see a difference between say, a steady iv drip of heroin, passionate love-making, or completing a whittling project. Pleasure is pleasure. But to most people, I think, there are base pleasures, and higher pleasures, which is why we can here call them levels of pleasure. The highest pleasures last the longest, but are more subtle. These we would call virtues, or values.

For instance, you and I value ambition. But as you say, being too ambitious is a problem: you might pursue something to the detriment of yourself. I might be wrong, but refuse to see it, for instance. So there’s a scale on which you could be too ambitious, or too little. Perhaps “ambitious,” then, is the wrong word for it- the far right end. The left end would be sloth, and the middle, what you want, is “initiative,” and if we have a good amount of initiative in our lives, we will reap subtle rewards and be better people, and Aristotle thinks we will be happy.

But happiness need not be equivalent to pleasure. As Douglas Adams said, “you cannot know the question and the answer at the same time.” Similarly, if we were truly happy, we wouldn’t really care to spend time thinking about it, would we? We would already have initiative, courage, humility, love, empathy, worldliness, knowledge, what have you, and most importantly, we would be implicitly confident enough not to know that we were these things at all. You know, if you have to question whether or not your action was right, are you doing it to be right, or are you doing it because it’s right? If you’re truly Mother Teresa, you wouldn’t think about whether or not to give food to orphans, and you wouldn’t think about how it reflects on you. When we reach Mother Teresa’s level, we will have changed as people and we will have achieved “Eudaimonia,” which is Greek-speak for something I suppose is equivalent to the Buddha’s Transcendence, except we don’t leave the Eternal Wheel, or whatever.

There are a lot of classic problems with Aristotle’s Ethics, but I’ve always liked it because it’s loose. He doesn’t actually think anyone will ever really know what they really want, but they still want it. The virtues that lead one to Eudaimonia need not be the same for everyone, depending upon the situation, and it need not be possible for everyone to reach it in their life. Aristotle actually says that the working man won’t have the time to devote himself to leading a good life, and still others will never have the opportunity to demonstrate, say, courage or selflessness, or perhaps many virtues, and they will not have the opportunity to reap the higher pleasures afforded to those who can demonstrate most virtues. In short, it’s for rich people with time on their hands.

But it’s looseness has not stopped it from defining, or perhaps discovering, what makes Americans tick on a fundamental ethical level. We all have ideal versions of ourselves that we each strive for, whether or not those versions are within reach. We all are taught virtues early in life by people who believe that those virtues will lead us to a life well lived. And we all know some people who seem more at peace than others. Maybe they don’t show it, maybe they haven’t achieved enlightenment or anything, but they are perhaps “happier” holistically than other poor souls who hurt themselves and others.

But eh, people are complicated.