DBUser = "faithn5_ffadmin"; $this->DBPass = "xBJg6UuFunlV"; $this->DBName = "faithn5_awards"; $this->DBHost = "localhost"; } //Connect to a mysql database function Connect(){ $this->db = mysql_connect($this->DBHost,$this->DBUser,$this->DBPass) or die("MYSQL ERROR: ".mysql_error()); //Select the database mysql_select_db($this->DBName,$this->db) or die("MYSQL ERROR: ".mysql_error()); } //Disconnect from the MYSQL database function Disconnect(){ mysql_close($this->db) or die("MYSQL ERROR: ".mysql_error()); } //Method that dynamically adds values to a MYSQL database table using the $_POST vars function AddToDB($tbl){ //Set the arrays we'll need $sql_columns = array(); $sql_columns_use = array(); $sql_value_use = array(); //Pull the column names from the table $tbl $pull_cols = mysql_query("SHOW COLUMNS FROM ".$tbl) or die("MYSQL ERROR: ".mysql_error()); //Pull an associative array of the column names and put them into a non−associative array while($columns = mysql_fetch_assoc($pull_cols)) $sql_columns[] = $columns["Field"]; foreach($_POST as $key => $value){ //Check to see if the variables match up with the column names if(in_array($key, $sql_columns) && trim($value)){ //If this variable contains the string "DATESTAMP" then use MYSQL function NOW() if($value == "DATESTAMP") $sql_value_use[] = "NOW()"; else { //If this variable contains a number, then don't add single quotes, //otherwise check to see if magic quotes are on and use addslashes if they aren't //if(is_numeric($value)) $sql_value_use[] = $value; //else $sql_value_use[] = (get_magic_quotes_gpc()) ? "'".$value."'" : "'".addslashes($value)."'"; } //Put the column name into the array $sql_columns_use[] = $key; } } //If $sql_columns_use or $sql_value_use are empty then that means no values matched if((sizeof($sql_columns_use) == 0) || (sizeof($sql_value_use) == 0)){ //Set $Error if no values matched $this->Error = "Error: No values were passed that matched any columns."; return false; } else { //Implode $sql_columns_use and $sql_value_use into an SQL insert sqlstatement $this->SQLStatement = "INSERT INTO ".$tbl." (".implode(",",$sql_columns_use).") VALUES (".implode(",",$sql_value_use).")"; //Execute the newly created statement if(@mysql_query($this->SQLStatement)) { $_SESSION['insertID'] = mysql_insert_id(); return true; } else { //Set $Error if the execution of the statement fails $this->Error = "Error: ".mysql_error(); return false; } } } //Method that dynamically updates values in a MYSQL database table using the $_POST vars function UpdateDB($tbl, $id, $id_name){ //Set the arrays we'll need $sql_columns = array(); $sql_value_use = array(); //Pull the column names from the table $tbl $pull_cols = mysql_query("SHOW COLUMNS FROM ".$tbl) or die("MYSQL ERROR: ".mysql_error()); //Pull an associative array of the column names and put them into a non−associative array while($columns = mysql_fetch_assoc($pull_cols)) $sql_columns[] = $columns["Field"]; foreach($_POST as $key => $value){ //Check to see if the variables match up with the column names if(in_array($key, $sql_columns) && isset($value)){ //If this variable contains the string "DATESTAMP" then use MYSQL function NOW() if($value == "DATESTAMP") $sql_value_use[] = $key."=NOW()"; else { //If this variable contains a number, then don't add single quotes, //otherwise check to see if magic quotes are on and use addslashes if they aren't //if(is_numeric($value)) $sql_value_use[] = $key."=".$value; //else $sql_value_use[] = (get_magic_quotes_gpc()) ? $key."='".$value."'" : $key."='".addslashes($value)."'"; } } } //If $sql_value_use is empty then that means no values matched if(sizeof($sql_value_use) == 0){ //Set $Error if no values matched $this->Error = "Error: No values were passed that matched any columns."; return false; } else { //Implode $sql_value_use into an SQL insert sqlstatement $this->SQLStatement = "UPDATE ".$tbl." SET ".implode(",",$sql_value_use)." WHERE ".$id_name."=".$id; //Execute the newly createdstatement if (@mysql_query($this->SQLStatement)) return true; else { //Set $Error if the execution of the statement fails $this->Error = "Error: ".mysql_error(); return false; } } } //Method that dynamically updates values in a MYSQL database table using the $_POST vars and multi where function UpdateDBMulti($tbl,$whereClause){ //Set the arrays we'll need $sql_columns = array(); $sql_value_use = array(); //Pull the column names from the table $tbl $pull_cols = mysql_query("SHOW COLUMNS FROM ".$tbl) or die("MYSQL ERROR: ".mysql_error()); //Pull an associative array of the column names and put them into a non−associative array while($columns = mysql_fetch_assoc($pull_cols)) $sql_columns[] = $columns["Field"]; foreach($_POST as $key => $value){ //Check to see if the variables match up with the column names if(in_array($key, $sql_columns) && isset($value)){ //If this variable contains the string "DATESTAMP" then use MYSQL function NOW() if($value == "DATESTAMP") $sql_value_use[] = $key."=NOW()"; else { //If this variable contains a number, then don't add single quotes, //otherwise check to see if magic quotes are on and use addslashes if they aren't //if(is_numeric($value)) $sql_value_use[] = $key."=".$value; //else $sql_value_use[] = (get_magic_quotes_gpc()) ? $key."='".$value."'" : $key."='".addslashes($value)."'"; } } } //If $sql_value_use is empty then that means no values matched if(sizeof($sql_value_use) == 0){ //Set $Error if no values matched $this->Error = "Error: No values were passed that matched any columns."; return false; } else { //Implode $sql_value_use into an SQL insert sqlstatement $this->SQLStatement = "UPDATE ".$tbl." SET ".implode(",",$sql_value_use)." WHERE ".$whereClause; //Execute the newly createdstatement if (@mysql_query($this->SQLStatement)) return true; else { //Set $Error if the execution of the statement fails $this->Error = "Error: ".mysql_error(); return false; } } } //Method that returns the previous MySQL error function GetError(){ //Get the last error $thisError = mysql_error(); return($thisError); } } ?>Table optimization failed. (Hit the back button to try again): ".mysql_error()); } //This returns the columns for a specific table function showColumns($thisTable){ $thisSQL = "show full columns from $thisTable"; $thisResult = mysql_query($thisSQL, db_connect_user()); return($thisResult); } //This checks a user login function lookupUserSec($thisUser,$thisPass){ $thisSQL = sprintf("select * from accountList where accountList.acctUser = '%s' and md5(accountList.acctPass) = '%s' and accountList.acctActive = 'Y' limit 1", mysql_real_escape_string($thisUser,db_connect_user()), mysql_real_escape_string($thisPass,db_connect_user())); $thisResult = mysql_query($thisSQL, db_connect_user()); return($thisResult); } //This checks a user email and password function resendUserSec($thisUser,$thisPass){ $thisSQL = sprintf("select * from accountList where accountList.acctEmail = '%s' and md5(accountList.acctPass) = '%s' and accountList.acctActive = 'Y' limit 1", mysql_real_escape_string($thisUser,db_connect_user()), mysql_real_escape_string($thisPass,db_connect_user())); $thisResult = mysql_query($thisSQL, db_connect_user()); return($thisResult); } //This retrieves all state pairs for popup menus function getStatePairs(){ $thisSQL = "select * from statePairs order by stateName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This takes an image, converts and resizes it function moveScaleRenamePics($thisTempFile,$thisMovedFile,$finalFile){ list($width, $height, $type, $attr) = getimagesize($thisTempFile); move_uploaded_file($thisTempFile, $thisMovedFile); if($width > $height){ $thisExecList = "/usr/local/bin/convert ".$thisMovedFile." -auto-orient -quality 100 -resize \"x50\" -colorspace RGB -gravity center -crop \"50x50+0+0\" -strip ".$finalFile."_l.jpg"; $thisExecThumb = "/usr/local/bin/convert ".$thisMovedFile." -auto-orient -quality 100 -resize \"x150\" -colorspace RGB -gravity center -crop \"150x150+0+0\" -strip ".$finalFile."_t.jpg"; } elseif($width < $height || $width == $height){ $thisExecList = "/usr/local/bin/convert ".$thisMovedFile." -auto-orient -quality 100 -resize \"50x\" -colorspace RGB -gravity center -crop \"50x50+0+0\" -strip ".$finalFile."_l.jpg"; $thisExecThumb = "/usr/local/bin/convert ".$thisMovedFile." -auto-orient -quality 100 -resize \"150x\" -colorspace RGB -gravity center -crop \"150x150+0+0\" -strip ".$finalFile."_t.jpg"; } $thisExecPreview = "/usr/local/bin/convert ".$thisMovedFile." -auto-orient -quality 100 -resize 800x800 -colorspace RGB -strip ".$finalFile."_p.jpg"; exec($thisExecList); exec($thisExecThumb); exec($thisExecPreview); if(file_exists($thisMovedFile)) unlink($thisMovedFile); } //This inserts a submission photo row function insertSubPhoto($thisSID,$thisFileRoot,$thisCaption){ $insertSQL = "insert into subPhotos(subID,photoName,photoCaption) values ('$thisSID','$thisFileRoot','$thisCaption');"; $insertResult = mysql_query($insertSQL, db_connect_admin()) or die("MYSQL ERROR: ".mysql_error()); } //This looks up awards entry fees (change to 1001 for live site) function lookupEntryFees($thisRowID){ $thisSQL = "select * from awardAmounts where amountID = ".$thisRowID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up submission account details function lookupSubDetails($thisSID){ $thisSQL = "select * from subAccount where subID = ".$thisSID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up submission account details function lookupAcctDetails($thisSID){ $thisSQL = "select * from accountList where subID = ".$thisSID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up details for a specific project function lookupProjDetails($thisPID){ $thisSQL = "select *, replace(projects.projDesc,'\n\r','qzqzqzqz') as projDescClean from projects where projID = ".$thisPID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up details for a specific project function lookupProjPics($thisPID){ $thisSQL = "select * from subPhotos where projID = ".$thisPID." order by photoID asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up submission account details function lookupEntryQuantities($thisSID){ $thisSQL = "select * from paidProjects where subID = ".$thisSID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up a juror's comments for a specific project function lookupJurorComments($thisPID,$thisAcctID){ $thisSQL = "select replace(jurorComments.commentText,'\n\r','qzqzqzqz') as commentTextRev, jurorComments.commentDate from jurorComments where projID = ".$thisPID." and acctID = ".$thisAcctID." order by commentDate asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up a juror's vote for a specific project function lookupProjectVote($thisPID,$thisAcctID){ $thisSQL = "select * from projVotes where projID = ".$thisPID." and acctID = ".$thisAcctID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up the vote tally for a specific project function tallyProjectVote($thisPID){ $voteTypes = array('Y','N','M'); $voteTally = array(); foreach($voteTypes as $thisVote){ $thisSQL = "select * from projVotes where projID = ".$thisPID." and vote = '".$thisVote."'"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); $voteTally[$thisVote] = mysql_num_rows($thisResult); } return($voteTally); } //This inserts a vote row for a specific project function insertProjVote($thisPID,$thisAcctID){ $insertSQL = "insert into projVotes(projID,acctID,vote) values ($thisPID,$thisAcctID,'V');"; $insertResult = mysql_query($insertSQL, db_connect_admin()) or die("MYSQL ERROR: ".mysql_error()); } //This looks up used entries from all categories function lookupUsedEntries($thisSID,$thisCatList){ $catReturn = array(); foreach($thisCatList as $key => $value){ $thisSQL = "select * from projects where subID = ".$thisSID." and projCategory = '".$value."'"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); $catReturn[$key] = mysql_num_rows($thisResult); } return($catReturn); } //This looks up used entries from a single category function lookupCatUsedEntries($thisSID,$thisCat){ $thisSQL = "select * from projects where subID = ".$thisSID." and projCategory = '".$thisCat."'"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up the total entries for a single category function countCatEntries($thisWhere){ $thisSQL = "select count(*) as numEntries from projects ".$thisWhere; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up a page of entries for a single category function lookupPageCatEntries($thisCat,$startNum,$pageSize,$orderBy,$thisAcctID){ $thisSQL = "select v.vote, p.projCategory, p.projSubcat, p.projName, p.projLoc, i.photoName, i.photoCaption from projects as p left join projVotes as v on projects.projID = projVotes.projID left join subPhotos as i on projects.projID = subPhotos.projID where p.projCategory = '".$thisCat."' and v.acctID = 1025 group by p.projID order by p.projCategory asc, p.projSubcat asc, p.projName asc limit ".$startNum.",".$pageSize.""; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for the juror list function lookupFullList($startNum,$pageSize){ $thisSQL = "select p.projID, p.projCategory, p.projSubcat, p.projName, p.projLoc from projects as p order by p.projCategory asc, p.projSubcat asc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for the juror list function lookupSubList($thisCat,$thisVote,$thisCount){ $thisSQL = "select p.projID as 'pID', p.projCategory as 'pCat', p.projSubcat as 'pSubcat', p.projName as 'pName', p.projLoc as 'pLoc', count(v.vote) as 'pVotes' from projects as p left join projVotes as v on p.projID = v.projID where p.projCategory = '".$thisCat."' and v.vote = '".$thisVote."' group by p.projID, v.vote having count(v.vote) >= ".$thisCount." order by p.projSubcat asc, count(v.vote) desc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for the juror list function lookupSubList2($thisCat,$thisCount){ $thisSQL = "select p.projID as 'pID', p.projCategory as 'pCat', p.projSubcat as 'pSubcat', p.projName as 'pName', p.projLoc as 'pLoc', count(v.vote) as 'pVotes' from projects as p left join projVotes as v on p.projID = v.projID where p.projCategory = '".$thisCat."' and (v.vote = 'Y' or v.vote = 'M') group by p.projID having count(v.vote) >= ".$thisCount." order by p.projSubcat asc, count(v.vote) desc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for a specific cat on the juror list function lookupCatList($startNum,$pageSize,$thisCat){ $thisSQL = "select p.projID, p.projCategory, p.projSubcat, p.projName, p.projLoc from projects as p where p.projCategory = '".$thisCat."' order by p.projCategory asc, p.projSubcat asc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for a specific cat on the juror list function lookupCatListJuror($thisCat,$thisAID,$thisVoteCode){ $thisSQL = "select p.projID, p.projCategory, p.projSubcat, p.projName, p.projLoc, v.vote from projects as p left join projVotes as v on p.projID = v.projID where p.projCategory = '".$thisCat."' and acctID = ".$thisAID.$thisVoteCode." order by p.projCategory asc, p.projSubcat asc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for a specific cat on the juror list function lookupCatFinalists($startNum,$pageSize,$thisCat){ $thisSQL = "select p.projID, p.projCategory, p.projSubcat, p.projName, p.projLoc from projects as p where p.projCategory = '".$thisCat."' and p.projFinal = 'Y' order by p.projCategory asc, p.projSubcat asc, p.projName asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all entries for a submitter function lookupAllSubEntries($thisSID){ $thisSQL = "select projects.projID, projects.projName, projects.projLoc, projects.projCategory, projects.projSubcat from projects where subID = ".$thisSID." order by projCategory,projSubcat,projName"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up list pic for an entry function lookupListPic($thisPID){ $thisSQL = "select * from subPhotos where projID = ".$thisPID." order by photoDate asc limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up a jurors vote for a project function lookupMyVote($thisPID,$thisAcctID){ $thisSQL = "select v.vote as myVote from projVotes as v where v.projID = ".$thisPID." and v.acctID = ".$thisAcctID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up the release forms for a specific submitter function lookupSubReleases($thisSID){ $thisSQL = "select * from releases where subID = ".$thisSID; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up a specific release form function lookupReleaseDetails($thisRID){ $thisSQL = "select * from releases where releaseID = ".$thisRID." limit 1"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //This looks up all a submitters pics for release forms function lookupReleasePics($thisSID){ $thisSQL = "select * from projects left join subPhotos on projects.projID = subPhotos.projID where projects.subID = ".$thisSID." order by projects.projName asc, subPhotos.photoDate asc"; $thisResult = mysql_query($thisSQL, db_connect_user()) or die("MYSQL ERROR: ".mysql_error()); return($thisResult); } //Does multiple inserts function doBatchInsert($thisInsertSQL){ $insertResult = mysql_query($thisInsertSQL, db_connect_admin()) or die("MYSQL ERROR: ".mysql_error()); } //This function inserts a submission user tracking row function insertSubTrack($thisSID,$thisPage,$thisIP){ $insertSQL = "insert into subTrack (trackID,subID,trackPage,trackDate,trackIP) values (NULL,$thisSID,'$thisPage',CURRENT_TIMESTAMP,'$thisIP');"; $insertResult = mysql_query($insertSQL, db_connect_admin()) or die("MYSQL ERROR: ".mysql_error()); } ?> Welcome to the International Awards Program for Religious Art & Architecture

Online Submissions for the Awards Program are Closed.

Entries will be juried in late July; award winners will be contacted in early August. If you do not receive notice by the end of August that your project has won, you are not a winner. Non-winners will NOT be contacted

All winners will be featured in our December issue.

Welcome to the

Faith & Form/ID International Awards Program
for Religious Art & Architecture

The Annual Religious Art and Architecture Design Awards program is co-sponsored by Faith & Form Magazine and Interfaith Design (ID, formerly IFRAA, the Interfaith Forum on Religion, Art, & Architecture), a knowledge community of the American Institute of Architects. The awards program was founded in 1978 with the goal of honoring the best in architecture, liturgical design and art for religious spaces. The program offers five primary categories for awards: Religious Architecture, Liturgical/Interior Design, Sacred Landscape, Religious Arts, and Student Work.

Submissions are now CLOSED. Thank you for your interest in our program. Awards will be juried in late July, award winners will be contacted in early August. If you do not receive notice by the end of August that your project has won, you are not a winner. Non-winners will NOT be contacted.

Awards and Recognition

Award recipients receive significant recognition including printed and framed citations, recognition at an ID awards presentation, full-page coverage in Faith & Form's Annual Awards Issue and project board exhibition at the AIA National Convention.

Award Categories

Entries are welcomed and encouraged from architects, landscape architects, designers, artists, students, and consultants. Our entry categories and entry requirements are detailed below.

The Jury Panel

  • Chair/Architect: Kathleen Lane
    AIA Baltimore / Baltimore, MD
  • Architect: James Theimer
    Trilogy Architect / Redding, CA
  • Clergy: Rev. Gilbert Ostdiek
    Catholic Theological Union / Chicago, IL
  • Artist: Scott Parsons
    Sioux Falls, SD
  • Liturgical Designer: Annie Dixon
    Dixon Studio / Staunton, VA

View past winners here (2012-2018)


Entry is a simple process!

  • Thank you for your interest and participation in the Faith & Form/ID International Awards Program. Watch this site for announcements concerning this year's winning entries and next year's Call for Entries.

    • Read the general submission guidelines and specific instructions (lower on this page) and gather all your materials.
    • Sign up for a US/Canada or International account; choose your own password and remember it! Passwords are case-sensitive.
    • Receive your user name via email.
    • Log in with your new user name and the password you chose. (Remember: passwords are case-sensitive!)
    • Select the number and type of entries you'll be submitting; pay for them via our convenient shopping cart.
    • Enter all your information and upload your photos and/or drawings (maximum of 18 total).
    • You're done!

Religious Architecture Awards

    • New Facilities Awards
      Any new building or complex of buildings that supports the mission of a religion (including non-worship facilities).
    • Renovation Awards
      Any renovated building or complex of buildings that supports the mission of a religion (including non-worship facilities).
    • Restoration Awards
      Any restored building or complex of buildings that supports the mission of a religion (including non-worship facilities). This award recognizes a creative use of craft, technology, research and new-meets-old concepts without sacrificing the original intent of the architecture.
    • Adaptive Re-Use/Re-Purpose
      Any building or complex of buildings that supports the mission of a religion (including non-worship facilities) that that has been adapted for new uses or purposes, shared by the faith community and an outside entity (such as a non-profit organization, arts group, soup kitchen, health center, housing, etc.). This award recognizes a creative use of design, craft, technology, and adaptive concepts that give existing religious facilities a new lease on life.
  • Open to architects licensed in the United States and abroad.

  • Cost per entry: $250

  • Religious Architecture Eligibility, Judging Criteria, and Submission Requirements

Sacred Landscape Awards

  • Any landscape design that supports a religious or spiritual purpose. This award recognizes the use of landscape and man-made materials to create outdoor environments—new or restored—conducive to prayer, meditation, or transcendence. This category is open to architects, landscape architects, designers, design consultants, and artists.
  • Cost per entry: $175

  • Sacred Landscape Eligibility, Judging Criteria, and Submission Requirements

Liturgical/Interior Design Awards

  • This award recognizes the design of interior space in the context of how ambiance and character have been established through the interaction of form and ritual ceremony; how the design reflects the understanding of a particular theology and its ritual symbolism; and how it brings spirituality to the space. This category is open to architects, designers, interior designers, design consultants in the U.S. or abroad.
  • Cost per entry: $250

  • Liturgical/Interior Design Eligibility, Judging Criteria, and Submission Requirements

Unbuilt Work

  • Any new building, complex of buildings, interior design, or landscape environment designed for an actual client, that supports the mission of a religion (including non-worship facilities), but has yet to be constructed (has not attained “substantial completion”). This category is open to all architects, landscape architects, designers, interior designers, and design consultants in the U.S. and abroad.
  • Cost per entry: $170

  • Unbuilt Work Eligibility, Judging Criteria, and Submission Requirements

Religious Arts Awards

    • Visual Arts Awards
      Including painting, mosaics, stained glass, sculpture, iconography, textiles, etc.
    • Liturgical Furnishings Awards
      Furnishing design that enhances the ritual ceremony.
    • Ceremonial Object Awards
      Objects playing supportive roles in ritual ceremony.
  • This category is open to all artists, designers, design consultants, and architects in the U.S. or abroad.

  • Cost per entry: $150

  • Religious Arts Eligibility, Judging Criteria, and Submission Requirements

Student Work

  • Any design for a building, complex of buildings, interior design, landscape environment, or artwork that supports a religious purpose, produced by a student of art, architecture, interior design, environmental design, or liturgical design in a religious or secular institution for higher learning in the U.S. or abroad. This category is open for submission by students and/or their professors, but must be substantially student work.
  • Cost per entry: $65

  • Student Work Eligibility, Judging Criteria, and Submission Requirements

Questions?

Contact Us!