To see or not to see, there is no question: A review of Theatre Cedar Rapids’ ‘Hamlet’


Theatre Cedar Rapids — through Apr. 16

Hamlet at TCR
Matthew James as Hamlet, in ‘Hamlet’ at Theatre Cedar Rapids. — photo by Struttmann Photof

I fell in love with Hamlet at a very young age. The titular character of one of Shakespeare’s most celebrated tragedies was exactly the kind of goth-y antihero that I went for, and his bloodthirsty revenge fantasy was utterly relatable to me. The romance of Ophelia, so shattered by strings attached to her by the men in her life that she becomes a broken puppet, touched a nerve in me that I only barely understood then, but have begun to understand more as I’ve grown up in a world similarly controlled by powerful men. TCR’s Hamlet navigates all of this territory with varying degrees of success and an overarching melancholic vibe that drips weariness, even as it clips along, delivering the three hour play in a way that feels much shorter.

Brett Goethe’s set is utilitarian and romantic, providing ample levels for playing that can turn from a well-lit wedding ceremony in the castle to a haunted turret of the Danish palace in the wee hours of the morning with a swift shift in lighting. From the clear plastic thrones to the watchmen’s weapons, each prop melds perfectly with the pretty-but-functional standard that is set. The play never loses momentum on this set. Hamlet runs off stage right to catch his father’s ghost and flies in the other side mere seconds later, giving the almost cinematic impression that it is the audience, not he, that has moved. Rosencrantz and Guildenstern disappear down the staircases cut into the front of the stage after coming in from the wings, but each move feels right, as though we have some knowledge of the shape of this castle thanks to the careful and meticulous plotting of each scene.

The judicious application of off-stage noise, such as the revelers at the wedding or the audience at the play, gives the world a wide, round feel, as though we are there. This is supported by Hamlet’s soliloquies which are delivered directly to the audience as though we are Hamlet’s confidant, trusted even more than his dearest companion Horatio. All of these choices are as effective as they are traditional.

In general, though, this play doesn’t feel traditional. Matthew James’ Hamlet is as easy to understand using iambic pentameter as any modern character, due in large part to effortless delivery and a clear command of the text. Hamlet is charming, devilish, wretched and raging in equal parts. The strength of his desire for revenge is only called into question by the choice to make Gertrude and the King’s concern seemingly sincere and often so sugary sweet that one is forced to wonder if they know they are guilty of the crime for which their Prince seeks revenge. Even as the King spurs Laertes on to murder his nephew, I found it hard to see the little moments of ruthlessness that might betray such villainy beneath his grandfatherly demeanor.

Hamlet at Theatre Cedar Rapids
M.C. Cole as Ophelia in Theatre Cedar Rapids’ production of ‘Hamlet’ — photo by Struttmann Photo
M.C. Cole’s Ophelia is less a delicate, pretty unbalanced creature than a willful child who believes that her father has her best interest at heart. While this is a refreshing look at Ophelia, it rings a little false when she loses her mind in the second act. Not because of poor delivery, but because we’ve seen nothing that would unravel her so between Hamlet breaking up with her and her father’s death. The Ophelia we meet in the first act doesn’t seem to be the type to completely shatter the way that Ophelia does. It led me to believe for a moment that she’d taken a page from Hamlet’s book and decided to act crazy to mask something else, something more. Alas, she dies off-stage and we never learn what revenge she may have been plotting.

Jason Spina as Laertes is adorable when cautioning his sister to guard her heart and devastating when mourning her death, Scott Humeston is a delightfully demented gravedigger, and John Miersen’s Horatio is careful and warm with Hamlet. James E. Trainor III and David Schneider as Rosencrantz and Guildenstern deserve special mention as well for toeing the line between the helping the Prince, their friend and obeying his Uncle, their King, with nuance and skill.

Overall, the costumes are amazing, the lighting spot on, and the set is masterfully designed and put to use. A few character choices were out of the box but ultimately interesting. In a world where Shakespeare is often decimated by inexperience or pomposity, this is a clear, honest and unique look at a play that has endured the test of time.

Hamlet runs at Theatre Cedar Rapids through Apr. 17. Ticket information is available on their website.

[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/to-see-or-not-to-see-there-is-no-question-a-review-of-theatre-cedar-rapids-hamlet/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Name</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="85"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>