From Dreams to Degrees -Sky Group Guides the Way
Sky Group offers end-to-end educational consulting: from personalized student counseling and university apps to visa support, test prep, scholarships, and smooth pre/post-arrival guidance.
Your trusted partner in achieving global education goals through expert counseling, visa support, and comprehensive services.
✦Scholarship Guidance  ✦Visa Assistance  ✦Program Guidance  ✦College Applications  ✦Program Guidance  ✦Strategy Planning  ✦visa assistant  ✦SOP & Essay Writing  ✦Pathway Programs  ✦Accommodation Help  ✦Course Selection  ✦Post-Landing Orientation  ✦Strategy  ✦PR Pathways  ✦Pathway Programs  ✦University Transfers  ✦OSAP help  ✦Immigration Help  ✦College Applications  ✦Career Counselling Â
Education Consultation  ✦  Agency  ✦  Development  ✦  studio  ✦  Website  ✦  Strategy  ✦  wordpress  ✦  branding  ✦  design  ✦  webdesign  ✦ Â
New creative  ✦  Agency  ✦  Development  ✦  studio  ✦  Website  ✦  Strategy  ✦  wordpress  ✦  branding  ✦  design  ✦  webdesign  ✦ Â
Sky Group is your go-to educational consultant, founded by pros passionate about turning study dreams into reality. We blend expert counseling with hands-on support for scholarships, visas, and global uni pathways—like guiding local families to top Canadian AI programs.
We are a tight-knit team with 20+ years of experience
helping early-stage startups showcase how good their products really are.
')
winHeight = $('.mdw-100vh').height()
winWidth = $(window).width()
if(isDisabled()) return
$(selector).each(function(i){
$(this).css('height', winHeight + (slides[i].length * options[i].scrollPerItem) + 'px')
})
}
function initTunnel(){
$(selector).each(function(i){
var geometry = new THREE.PlaneGeometry(2, 2)
scene[i] = new THREE.Scene()
camera[i] = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1)
renderer[i] = new THREE.WebGLRenderer()
$(this).find('canvas').remove()
if(isDisabled()) {
$(this).prepend(renderer[i].domElement)
}else{
$(this).find('.mdw-image-gallery-inner').append(renderer[i].domElement)
}
uniforms[i] = {
iResolution: {
value: new THREE.Vector2(winHeight, winHeight),
},
scrollOffset: { value: 0 },
}
let material = new THREE.ShaderMaterial({
uniforms: uniforms[i],
vertexShader: $("#vertexShader").text(),
fragmentShader: $("#fragmentShader").text()
})
scene[i].add(new THREE.Mesh(geometry, material))
})
}
function setTunnelSize(){
$(selector).each(function(i){
renderer[i].setSize(winWidth, winHeight)
uniforms[i].iResolution.value.set(winWidth, winHeight)
})
}
function stopTunnelRefresh(){
if(animationId) cancelAnimationFrame(animationId)
}
function startTunnelRefresh(){
$(selector).each(function(i){
renderer[i].render(scene[i], camera[i])
})
animationId = requestAnimationFrame(startTunnelRefresh)
}
function refreshTunnel(){
stopTunnelRefresh()
startTunnelRefresh()
}
function initImages(){
if(isDisabled()) return
$(selector).each(function(i){
initialZ[i] = []
frontRange[i] = []
visibleRange[i] = 5000
slides[i].each(function(index){
initialZ[i][index] = -index*options[i].distance
frontRange[i][index] = 1000
$(this).css('transform', `translate3d(-50%, -50%, ${initialZ[i][index]}px)`)
$(this).css('opacity', mapRange(initialZ[i][index], -visibleRange[i], 0, 0, 1))
})
})
}
function init(){
getValues()
$(selector).each(function(i){
slides[i] = $(this).find('.mdw-image-gallery-inner > .e-con, .mdw-image-gallery-inner > .e-con-inner > .e-con, .mdw-image-gallery-inner > .e-container')
slides[i].each(function(si) { $(this).css('z-index', slides[i].length - si) })
$(this).css('--main-bg', $(this).css('background-color'))
})
initTunnel()
setTunnelSize()
refreshTunnel()
setHeight()
initImages()
}
function setSticky(){
var disabledElement = 'elementor-widget-html'
if(isDisabled()) disabledElement = 'elementor-element'
$(selector).each(function(i){
var $this = $(this),
rect = $this[0].getBoundingClientRect(),
inner = $this.children().not('.' + disabledElement)
rect.top = 0 && progress = 0){
if(opacity