Metadata
Title
University of Toronto Entrepreneurship
Category
general
UUID
4078cff7bbe24ee395286dbf6edcaef5
Source URL
https://entrepreneurs.utoronto.ca/
Parent URL
https://defygravitycampaign.utoronto.ca/news-and-stories/u-of-t-celebrates-openi...
Crawl Time
2026-03-10T08:07:18+00:00
Rendered Raw Markdown
# University of Toronto Entrepreneurship

**Source**: https://entrepreneurs.utoronto.ca/
**Parent**: https://defygravitycampaign.utoronto.ca/news-and-stories/u-of-t-celebrates-opening-of-schwartz-reisman-innovation-campus/

### An innovation powerhouse

The U of T Entrepreneurship community consists of 12+ accelerators across our three campuses. Our entrepreneurial initiatives leverage the diverse strengths of a globally recognized university to provide an incredible range of unique offerings to current and aspiring innovators.

#
1

in Canada for research-based startups

top
5

in the world for university startup incubators

1500
+

venture-backed companies created

20
K+

jobs created

$
14
B+

funding raised

[Learn More about US](https://entrepreneurs.utoronto.ca/about/about-us/)
[2025 UTE annual report](https://entrepreneurs.utoronto.ca/ute-annual-report-2024-2025/)

## Startup spotlight

Explore U of T’s innovative startups with their world-class strengths ranging from advanced materials and manufacturing to regenerative medicine and AI.

[### This is the place to target genetic diseases](https://entrepreneurs.utoronto.ca/spotlight/this-is-the-place-to-target-genetic-diseases/)

University of Toronto startup Deep Genomics is using artificial intelligence to find better drugs for genetic disorders and to get them into the clinic faster. Ever since scientists fully sequenced…

[Innovations & Partnerships Office (IPO)](https://entrepreneurs.utoronto.ca/company/innovations-partnerships-office-ipo/ "company")
[Deep Genomics](https://entrepreneurs.utoronto.ca/startup/deep-genomics/ "startup")
[UTEST](https://entrepreneurs.utoronto.ca/accelerator/university-of-toronto-early-stage-technology-utest/ "accelerator")
[Creative Destruction Lab](https://entrepreneurs.utoronto.ca/accelerator/creative-destruction-lab/ "accelerator")

[### This is the place to help kids walk](https://entrepreneurs.utoronto.ca/spotlight/this-is-the-place-to-help-kids-walk/)

A small boy wearing Trexo Robotics assistive technology smiles as a helper shows him a tablet display University of Toronto startup Trexo Robotics is designing innovative assistive technology that supports…

[Trexo Robotics](https://entrepreneurs.utoronto.ca/startup/trexo-robotics/ "startup")

[### This is the place to expand the internet into space](https://entrepreneurs.utoronto.ca/spotlight/this-is-the-place-to-expand-the-internet-into-space/)

U of T startup Kepler Communications’ tiny internet satellites are helping scientists share field data. The more field data that scientists analyze from around the world, the better we’ll be…

[Kepler Communications Inc.](https://entrepreneurs.utoronto.ca/startup/kepler-communications/ "startup")

## Recent news

<div v-html="post.card\_html" class="vue-card"></div>

// POST COMPONENT
Vue.component('post', {
template: '#post-template',
props: {
'post': Object,
'updatePostTags': Boolean,
'filterNames': Object,
'matchingTerms': Array,
'taxonomyQueriesObj': Object,
'requiredFields': Object,
'showMatchingTagsOnly': Boolean
},
data: function() {
return {
isHovering: false
}
},
computed: {
cardType() {
return this.post.card\_type ? "single-post--" + this.post.card\_type : '';
},
overline() {
return "spotlight" !== this.post.card\_type ? this.post.overline : '';
},
linkTarget() {
return "external" === this.post.link\_location ? "\_blank" : "\_self";
}
},
methods: {
tagType(taxonomy) {
return "tag--" + taxonomy;
},
tagTitle(term) {
const taxonomy = term.taxonomy;
const termName = term.name;
// console.log(term, taxonomy, termName)
let niceName = taxonomy.replace(/-/g, ' ');
niceName = taxonomy.replace(/\_/g, ' ');
return niceName + ": " + termName;
},
showTag(term) {
return term && 'Uncategorized' !== term.name && this.matchingTerms && this.matchingTerms.includes(term.id.toString()) ? true : false;
},
},
mounted() {
this.$nextTick(() => {
// The whole view is rendered, so I can safely access or query
// the DOM. ¯\\_(ツ)\_/¯
ute.animateCards(jQuery);
})
}
});

<div class="pagination">
<template v-if="pages.length > 1">
<button v-on:click="updatePageNum('prev')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === 1}">Previous Page</button>
<form class="pagination\_\_form">
<label class="pagination\_\_item" :class="{' pagination\_\_item--current': page === pageNum}" v-for="(page, key) of pages">
<template v-if="separate(page, key)">...</template>
<span v-html="page"></span>
<input type="radio" :value="page" v-model="pageNumber">
</label>
</form>
<button v-on:click="updatePageNum('next')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === pages[pages.length - 1]}">Next Page</button>
</template>
</div>

// PAGINATION
Vue.component('posts-pagination', {
template: '#pagination-template',
props: {
pages: Array,
pageNum: Number
},
data: function () {
return {
pageNumber: this.pageNum ? this.pageNum : ""
}
},
watch: {
/\* watch for updates in page number and push data to instance
(will trigger new fetch) \*/
pageNumber: {
handler(val) {
this.$emit("update-page", val);
}
}
},
methods: {
separate: function(page, key) {
var current = this.pages[key];
var previous = this.pages[key - 1];
var gap = page - previous;
return gap && gap > 1 ? true : false;
},
// update page number based on click of pre / next buttons
updatePageNum: function(direction){
if(direction === "prev" && this.pageNumber > 1) {
this.pageNumber = this.pageNumber - 1;
} else if(direction === "next" && this.pageNumber < this.pages[this.pages.length - 1]) {
this.pageNumber++;
}
}
}
});

<div :class="classes">
<div class="btn">
<span class="btn\_\_text" @click="$emit('update-page', increasedPageNum)">{{loading ? 'Loading ...' : label}}</span>
</div>
</div>

Vue.component('load-more', {
template: '#loadmore-template',
props: {
label: {
type: String,
required: false
},
totalResults: {
type: Number,
required: true
},
postsPerPage: {
type: String,
required: true
},
pageNum: {
type: Number,
required: true
},
loading: {
type: Boolean,
required: false
}
},
computed: {
increasedPageNum() {
let currentPageNum = this.pageNum;
return currentPageNum + 1;
},
classes() {
let totalPages = this.totalResults / this.postsPerPage;
return totalPages >= this.pageNum ? 'loadmore' : 'loadmore loadmore--hidden';
}
}
});

There are no Results for your current selection. Try resetting the filters or clearing your search term to view all

There are no results available ...

[more news](https://entrepreneurs.utoronto.ca/news/)

## Community events

Upcoming

Past

<div v-html="post.card\_html" class="vue-card"></div>

// POST COMPONENT
Vue.component('post', {
template: '#post-template',
props: {
'post': Object,
'updatePostTags': Boolean,
'filterNames': Object,
'matchingTerms': Array,
'taxonomyQueriesObj': Object,
'requiredFields': Object,
'showMatchingTagsOnly': Boolean
},
data: function() {
return {
isHovering: false
}
},
computed: {
cardType() {
return this.post.card\_type ? "single-post--" + this.post.card\_type : '';
},
overline() {
return "spotlight" !== this.post.card\_type ? this.post.overline : '';
},
linkTarget() {
return "external" === this.post.link\_location ? "\_blank" : "\_self";
}
},
methods: {
tagType(taxonomy) {
return "tag--" + taxonomy;
},
tagTitle(term) {
const taxonomy = term.taxonomy;
const termName = term.name;
// console.log(term, taxonomy, termName)
let niceName = taxonomy.replace(/-/g, ' ');
niceName = taxonomy.replace(/\_/g, ' ');
return niceName + ": " + termName;
},
showTag(term) {
return term && 'Uncategorized' !== term.name && this.matchingTerms && this.matchingTerms.includes(term.id.toString()) ? true : false;
},
},
mounted() {
this.$nextTick(() => {
// The whole view is rendered, so I can safely access or query
// the DOM. ¯\\_(ツ)\_/¯
ute.animateCards(jQuery);
})
}
});

<div class="pagination">
<template v-if="pages.length > 1">
<button v-on:click="updatePageNum('prev')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === 1}">Previous Page</button>
<form class="pagination\_\_form">
<label class="pagination\_\_item" :class="{' pagination\_\_item--current': page === pageNum}" v-for="(page, key) of pages">
<template v-if="separate(page, key)">...</template>
<span v-html="page"></span>
<input type="radio" :value="page" v-model="pageNumber">
</label>
</form>
<button v-on:click="updatePageNum('next')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === pages[pages.length - 1]}">Next Page</button>
</template>
</div>

// PAGINATION
Vue.component('posts-pagination', {
template: '#pagination-template',
props: {
pages: Array,
pageNum: Number
},
data: function () {
return {
pageNumber: this.pageNum ? this.pageNum : ""
}
},
watch: {
/\* watch for updates in page number and push data to instance
(will trigger new fetch) \*/
pageNumber: {
handler(val) {
this.$emit("update-page", val);
}
}
},
methods: {
separate: function(page, key) {
var current = this.pages[key];
var previous = this.pages[key - 1];
var gap = page - previous;
return gap && gap > 1 ? true : false;
},
// update page number based on click of pre / next buttons
updatePageNum: function(direction){
if(direction === "prev" && this.pageNumber > 1) {
this.pageNumber = this.pageNumber - 1;
} else if(direction === "next" && this.pageNumber < this.pages[this.pages.length - 1]) {
this.pageNumber++;
}
}
}
});

<div :class="classes">
<div class="btn">
<span class="btn\_\_text" @click="$emit('update-page', increasedPageNum)">{{loading ? 'Loading ...' : label}}</span>
</div>
</div>

Vue.component('load-more', {
template: '#loadmore-template',
props: {
label: {
type: String,
required: false
},
totalResults: {
type: Number,
required: true
},
postsPerPage: {
type: String,
required: true
},
pageNum: {
type: Number,
required: true
},
loading: {
type: Boolean,
required: false
}
},
computed: {
increasedPageNum() {
let currentPageNum = this.pageNum;
return currentPageNum + 1;
},
classes() {
let totalPages = this.totalResults / this.postsPerPage;
return totalPages >= this.pageNum ? 'loadmore' : 'loadmore loadmore--hidden';
}
}
});

There are no Results for your current selection. Try resetting the filters or clearing your search term to view all

There are no results available ...

[VIEW ALL EVENTS](https://entrepreneurs.utoronto.ca/events/events-calendar/)

<div v-html="post.card\_html" class="vue-card"></div>

// POST COMPONENT
Vue.component('post', {
template: '#post-template',
props: {
'post': Object,
'updatePostTags': Boolean,
'filterNames': Object,
'matchingTerms': Array,
'taxonomyQueriesObj': Object,
'requiredFields': Object,
'showMatchingTagsOnly': Boolean
},
data: function() {
return {
isHovering: false
}
},
computed: {
cardType() {
return this.post.card\_type ? "single-post--" + this.post.card\_type : '';
},
overline() {
return "spotlight" !== this.post.card\_type ? this.post.overline : '';
},
linkTarget() {
return "external" === this.post.link\_location ? "\_blank" : "\_self";
}
},
methods: {
tagType(taxonomy) {
return "tag--" + taxonomy;
},
tagTitle(term) {
const taxonomy = term.taxonomy;
const termName = term.name;
// console.log(term, taxonomy, termName)
let niceName = taxonomy.replace(/-/g, ' ');
niceName = taxonomy.replace(/\_/g, ' ');
return niceName + ": " + termName;
},
showTag(term) {
return term && 'Uncategorized' !== term.name && this.matchingTerms && this.matchingTerms.includes(term.id.toString()) ? true : false;
},
},
mounted() {
this.$nextTick(() => {
// The whole view is rendered, so I can safely access or query
// the DOM. ¯\\_(ツ)\_/¯
ute.animateCards(jQuery);
})
}
});

<div class="pagination">
<template v-if="pages.length > 1">
<button v-on:click="updatePageNum('prev')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === 1}">Previous Page</button>
<form class="pagination\_\_form">
<label class="pagination\_\_item" :class="{' pagination\_\_item--current': page === pageNum}" v-for="(page, key) of pages">
<template v-if="separate(page, key)">...</template>
<span v-html="page"></span>
<input type="radio" :value="page" v-model="pageNumber">
</label>
</form>
<button v-on:click="updatePageNum('next')" class="pagination\_\_button" :class="{' pagination\_\_button--disabled': pageNum === pages[pages.length - 1]}">Next Page</button>
</template>
</div>

// PAGINATION
Vue.component('posts-pagination', {
template: '#pagination-template',
props: {
pages: Array,
pageNum: Number
},
data: function () {
return {
pageNumber: this.pageNum ? this.pageNum : ""
}
},
watch: {
/\* watch for updates in page number and push data to instance
(will trigger new fetch) \*/
pageNumber: {
handler(val) {
this.$emit("update-page", val);
}
}
},
methods: {
separate: function(page, key) {
var current = this.pages[key];
var previous = this.pages[key - 1];
var gap = page - previous;
return gap && gap > 1 ? true : false;
},
// update page number based on click of pre / next buttons
updatePageNum: function(direction){
if(direction === "prev" && this.pageNumber > 1) {
this.pageNumber = this.pageNumber - 1;
} else if(direction === "next" && this.pageNumber < this.pages[this.pages.length - 1]) {
this.pageNumber++;
}
}
}
});

<div :class="classes">
<div class="btn">
<span class="btn\_\_text" @click="$emit('update-page', increasedPageNum)">{{loading ? 'Loading ...' : label}}</span>
</div>
</div>

Vue.component('load-more', {
template: '#loadmore-template',
props: {
label: {
type: String,
required: false
},
totalResults: {
type: Number,
required: true
},
postsPerPage: {
type: String,
required: true
},
pageNum: {
type: Number,
required: true
},
loading: {
type: Boolean,
required: false
}
},
computed: {
increasedPageNum() {
let currentPageNum = this.pageNum;
return currentPageNum + 1;
},
classes() {
let totalPages = this.totalResults / this.postsPerPage;
return totalPages >= this.pageNum ? 'loadmore' : 'loadmore loadmore--hidden';
}
}
});

There are no Results for your current selection. Try resetting the filters or clearing your search term to view all

There are no results available ...